算法与数据结构回顾 – 广义表

算法与数据结构回顾 – 广义表

图源:吟游诗人-狼娘 月巴小鹅 111776313

简述

广义表是线性表的一种推广。线性表要求表中元素拥有统一的类型,而广义表无此限制。需要注意的是,广义表和线性表长度一般认为是有限的,但广义表的深度可以是无限的(即递归表)。

广义表是一种数据结构。对广义表的常见操作包括:

  • 创建
  • 从字符串形式创建
  • 销毁
  • 复制
  • 取表头
  • 取表尾
  • 判空
  • 求长度
  • 求深度
  • 从表头插入
  • 从表头删除
  • 遍历

广义表是Lisp语言的基本数据结构。后文以Common Lisp和C++给出各基本操作的示例。

阅读更多
计算机图形学(1):感性认识

计算机图形学(1):感性认识

图源:《Magnet》Matcha_ 102235547

本系列笔记为结合了个人理解的非初学者向笔记,包括《CMU 15-462》、《Games 101:现代计算机图形学入门》、《Games 102:几何建模与处理》、《Introduction to 3D Game Programming with DirectX 12》等数个知识来源。

什么是计算机图形学

计算机图形学:利用计算机合成视觉信息或利用计算机合成/操控感官信息的学科。

计算机图形学的应用

  • 影视
  • 动画
  • 游戏
  • 数据可视化
  • 工业设计,平面设计
  • 数字绘画
  • 虚拟现实
    • 虚拟现实(VR):指所看到的一切均为虚拟的,比如虚拟现实游戏、虚拟现实视频等。
    • 增强现实(AR):指看到的是真实的现实 + 虚拟的、对当前现实进行分析处理或修改等生成的虚拟事物,比如Apple ARkit。
    • 混合现实(MR):VR + AR,使用类似VR的手段,达到AR这种结合当前现实与虚拟事物的效果,比如Hololens。
  • 制造业(3D打印)
  • 模拟与数字孪生
  • 排版与字体设计
    • “The Quick Brown Fox Jumps Over The Lazy Dog”:一句有意义的英文句子,内含全部的26个英文字母,常用来对字体(字形、字号、间距等)进行测试。
    • “Lorem ipsum dolor sit amet, consectetur adipisicing elit.”:又叫“乱数假文”或者“哑元文本”。主要的目的为测试文章或文字在不同字型、版型下看起来的效果。更多资料请查阅:https://cn.lipsum.com/
阅读更多
Linux&Windows小技巧(5)

Linux&Windows小技巧(5)

文章内容:Edge、Chrome和Firefox的展台模式;Scoop的使用方法

图源:Anmi - 水族館 83088427

Microsoft Edge 展台模式

《小技巧(3)》 中,我以 Microsoft Edge 为例简单描述了 Windows 操作系统级展台模式功能的设置方法。

对于操作系统级的“展台模式”,常用于以下场景:

  • 商场电子展柜、企业宣传展板等;
  • 数据看板大屏、监控系统大屏、比赛实况大屏等;
  • 图书馆、办事处、机场等的公用电脑;

以上场景具有的共同特点是:需要应用保持全屏;限制用户只使用这个应用或访问特定网页;提供一定交互能力。

在绝大多数情况下,被展示的内容都可以用网页的形式(播放幻灯片、播放视频等也可以用网页实现)呈现。这种场景下,OS级展台模式功能的配置流程复杂、维护困难、可能导致操作系统不稳定等问题就显得有些大材小用了。

如果只是想临时启动 Edge 的展台模式,或是在运行 Edge 的同时运行其他程序,再或者是在 Linux 或 macOS 下启动展台模式,最简便的办法是直接使用命令行。

启动命令

Edge 是基于 Chromium 二次开发的浏览器。因此,与 Chromium 启动展台模式的命令类似。以百度为例启动展台模式:

1
.\chrome.exe --kiosk 'https://www.baidu.com'

定位到 msedge.exe 所在路径,一般为:

1
C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe

在该路径下启动 PowerShell,启动展台模式:

1
.\msedge.exe --kiosk 'https://www.baidu.com' --edge-kiosk-type=fullscreen
现代C语言:C23标准中值得注意的变化

现代C语言:C23标准中值得注意的变化

图源:Anmi - 水族館 83088427

虽然没有固定标准,但一般将C99之后的C语言标准称为“现代C语言”;目前的最新标准为C23;

C23标准中值得注意的变化

以下是一部分我认为比较重要的变化,完整变化列表可以参阅 https://en.cppreference.com/w/c/23 或ISO标准文档。

替代

  • <assert.h>中的static_assert()宏被替代,变成了static_assert关键字;
  • <threads.h>中的thread_local()宏被替代,变成了thread_local关键字;
  • <time.h>中的ctime()函数弃用,请使用ctime_s()替代;
  • <time.h>中的asctime()函数弃用,请使用asctime_s()替代;
  • <stdnoreturn.h>_Noreturn标识符均弃用;
  • <stdalign.h>中的alignas()alignof()宏被弃用,请直接使用_Alignas_Alignof关键字;
阅读更多
Synthesizer V 插件开发入门(1)

Synthesizer V 插件开发入门(1)

图源:紺屋鴉江 - 《銀河》,Pid:94649749

写在前面

本文并非“零基础入门”型的文章。阅读此文章前,建议你已经:

  • 使用过 Synthesizer V Studio(即 SVR2,以下用此简称代替),了解过 VOCALOID,知道“插件”的作用是什么;
  • 已购买 Synthesizer V Studio Pro 版本,以便于插件的开发与调试;
  • 有一定的编程经验,使用过 Lua 语言;

Synthesizer V Studio Pro的正版授权可从 平行四界官方淘宝店 Dreamtonics官方淘宝店 获取。关于 Lua 编程的资料数不胜数,可从 菜鸟教程 等网站获取。

另外,阅读时,可以配合下面两个文档:

正文部分存在问答部分,可能与后文的知识关联。你可以按顺序阅读,也可以在阅读完其他内容后再阅读问答部分。

以下是文章正文。

阅读更多
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×