有理曲线的构造

2017-11-18
阅读 4 分钟
3.6k
当我生活在一条多项式曲线 $P(t)$ 构造的空间里,要让我感受到这个空间是弯曲的,需要给我一个测量工具,让我能够测量这个空间里任意两个 $t$ 值 $t_a$ 与 $t_b$ 对应的两个点 $P_a$、$P_b$ 之间的距离,即 $d(P_a, P_b)$。为了便于描述,我给 $t$ 取了个名字,叫时间。

曲线插值:大直若曲

2017-11-13
阅读 4 分钟
3.8k
声明:以下内容出现了一些 TeX 数学公式,它们显示不出来,这不是我的错 :) 更正:段错误网站有个 Bug,它会自动检测文本里是否出现了 TeX 数学公式,然后才能进行公式渲染,但检测规则是必须出现行间公式,即

斯坦福兔子的伪全息舞台剧

2017-11-10
阅读 3 分钟
5.9k
前两天用 Python 语言写了个小工具 Hamal,可以将一些朴素的数据文件转化为 POV-Ray 场景文件,然后进行光线跟踪渲染,从而实现数据的可视化。有关 Hamal 的用法,详见 「Hamal 指南」。

Hamal 指南

2017-11-09
阅读 3 分钟
4.6k
Hamal 是一份 Python 3 脚本,可将点集、无向图、曲线、矢量场、网格曲面等三维几何数据转化为 POV-Ray 场景文件。也就是说,Hamal 不生产数据,也不负责图形渲染,它只能算是一个数据格式转换器,面向对 POV-Ray 有一些了解并且希望使用 POV-Ray 对上述三维几何图形进行光线追踪渲染的人。

真正好用的软件都会有个 Shell

2017-11-08
阅读 2 分钟
2.5k
截止到公元 2017 年 11 月 7 日晚上 10 点,菜单、工具栏与快捷键依然是几乎所有带图形界面的软件的标配。我们已经习以为常,每天像杂货铺的老板一样清点着它们。

趴边去!

2017-11-06
阅读 3 分钟
2.6k
昨天,一整天都在折腾,用 Python 写出来一个挺简单的 POV-Ray 代码生成器,解决了三维点集的可视化问题。今天对它又作了一些改进,之后又写了一个无向图的 POV-Ray 代码生成器。以后再有需要,还得为向量场、曲线等几何对象的可视化写相应的代码生成器。

当 Python 邂逅 POV-Ray

2017-11-06
阅读 12 分钟
6.5k
POV-Ray 是一种专业的三维场景描述语言,它描述的三维场景可交由 POV-Ray 的解析器(或编译器)采用光线跟踪技术进行渲染,渲染结果为位图。

有个空间,名叫 Gamma

2017-09-11
阅读 4 分钟
2.9k
Gamma 空间是计算机图形学领域的一个很古老的传说。最近我在看 POV-Ray 的官方指南时才注意到它的存在。这篇文章是我阅读一些资料之后写的一篇笔记,其中有一些内容属于猜测,若有错误,请不吝指正。

为小项目写 Makefile

2017-08-26
阅读 11 分钟
4.7k
这篇文章以我的一个小项目为例,阐述了面向 GNU Make 的 Makefile 文件的基本写法。由于我未认真阅读 GNU Make 的文档,并且对于符合 POSIX 标准的 Makefile 格式并不了解,所以我写的 Makefile 可能不甚严肃,还请擅长此道者不吝赐教。

orez 的故事

2017-01-16
阅读 14 分钟
4.9k
事实上,zero 的生死,对这个世界没有任何影响。尽管从理论上说,我是它唯一的用户,但是它的死对我也没有任何影响。因为在它死去之后,orez 就诞生了。不过,orez 的生,对这个世界继续不会有什么影响。

GNU parallel 笔记

2016-12-04
阅读 3 分钟
4.8k
以前虽然知道有这么个工具,但是一直没想到要用。今天在删除我的 Gentoo 系统的 /usr/src 目录下的旧版本的内核源码目录时用了一次,很好用。

基于 m4 的 C 代码模板化

2016-12-02
阅读 12 分钟
6.7k
foo 所接受的两个参数 x 与 y 分别是指向两个点对象的指针。为了追求通用性,foo 这个函数努力成为一个不依赖具体数据类型的「泛型」函数。也就是说,现在我们并不知道 x 与 y 所指向的点对象究竟有着怎样的数据结构。也许它们的数据结构是:

在 C 的世界之外

2016-11-30
阅读 6 分钟
5.1k
B:不可以,除非不在意自己的 C 程序在性能上输给 C++ 模板程序。如果这种密集型的运算过程仅仅是对某些数据类型有所依赖,此时可以用宏进行抽象。

C 的容器、环境与算法

2016-11-13
阅读 10 分钟
6k
本文介绍了有助于提高 C 代码复用程度的一些基本抽象手段。原本是写给组里初学 C 的的小伙伴们看的…… C 程序是什么 A:程序是什么? B:程序 = 算法 + 数据结构。 A:算法是什么? B:是一个函数,$Y = f(X, t)$。这个函数描述的是一组初始状态 $X$ 如何随着时间 $t$ 的变化逐步演化为另一组状态 $Y$。 A:数据结构是什...

用 Gnuplot 绘制实验数据

2016-11-08
阅读 11 分钟
15.8k
下面这组数据是我的一篇论文中的实验数据……为了得到这组数据,折腾了一个多月。第一行文本是注释。第 1 列是 7 份数据的编号。第 2 列是数据量(点数)。第 3~5 列分别是三种数据处理算法所耗时间(秒)。

povray[2] = 大地

2016-08-22
阅读 3 分钟
3.5k
也就是说,平面还是平面,只是平面上蒙上了一层草地的图案。草地的图案,是通过 bumps 语句随机扰动平面的法向而渲染出来的。可以尝试不同的 bumps 与 scale 的参数,理解它们对草地图案渲染结果的影响。

povray[1] = 天空

2016-08-21
阅读 7 分钟
4.5k
由于光源位于球体的右上方,所以球体的左下侧表面出现了阴影。然而现实中,天空是没有阴影的。要消除球体上的阴影,需要将其表面设置为不散射来自光源的光:

Debian,从安装到喜欢

2016-08-14
阅读 8 分钟
10k
我想念 Gentoo。虽然它就在我身边的工作站里运行着,但是这台笔记本里却没有。在这台十年前的笔记本上安装 Gentoo,会显得我太变态,更何况这台笔记本是我自己出资买的,敝本自珍。我想试试 Debian。

povray[0] = 第一幅画

2016-08-12
阅读 2 分钟
4.8k
我不会画画。我的一个朋友遭遇短期囹圄之灾后,一直闭门在家画画……不过,没遭此灾时,他也是一直闭门在家画画。他最近在学 3D MAX。我说,可以学 povray 阿,他说这玩意能画 18X 吗……

Fedora,从安装到放弃

2016-08-10
阅读 5 分钟
16.2k
搁小十年前,我很穷的时候,它对我来说是高端本,只有在网上看看的份。非常不幸,小十年后,我依然很穷,所以 550+ RMB 买了个杂凑的,翻新的……网店老板给它预装了雨林木风 Win XP。

程序与文档

2016-08-04
阅读 1 分钟
3.6k
文档是重要的,没有文档,单凭代码中那些经常很蹩脚的变量名与函数名,往往很难理解一段代码的功能及用途。$y=ax^2$ 是抛物线吧?那 $E=mc^2$ 是什么?编程虽然也像数学那样依赖于符号,但它更像是物理学。

续延传递

2016-06-09
阅读 4 分钟
4.1k
续延传递(Continuation Passing Style, CPS)是一种编程手法,不要相信我能够将它讲清楚——在敲这些字的时候,我刚刚开始看《The Little Schemer》的第八章的 multirember&co 这个函数的定义,而且是因为看不懂,所以才写此文。

pidgin 客串 IRC 客户端

2016-05-31
阅读 3 分钟
4.6k
pidgin 是一个支持多种网络 IM(即时通讯)协议的软件,可运行于 Linux,Windows 以及 Mac OS X 三大系统平台。本文所讲的是,如何用它玩 IRC。

团队内部不甚讲究的 IRC 服务搭建

2016-05-31
阅读 4 分钟
13k
我们这个不甚成器的『团队』蜗居于一个房间里,本来有什么事喊两声便可搞定。但是,有一些信息是难以喊出来的。譬如,我该怎么喊出来这份文档的地址?网络即时通讯工具是非常有必要的。于是,问题就来了。工作环境是 Linux,注定与 QQ,微信之类的现代网络即时通讯工具无缘了,几乎只剩下 IRC 可选。

会画画的乌龟

2016-05-10
阅读 17 分钟
6.9k
Guile 是一种 Scheme 方言的编译器,我们将这种 Scheme 方言也称为 Guile。Guile 是为增强 GNU 项目的扩展性而开发的。GNU 项目开发者可以将 Guile 解释器嵌入自己的程序中,从而使得自己的程序能够支持脚本扩展。本文取材于 Guile 官方的一篇教程,讲述一个具有绘图功能的 C 程序如何与 Guile 结合以获得脚本扩展能力。

<译> MIT 为何停掉 SICP?

2016-05-05
阅读 1 分钟
22.8k
在纽约举行的一次 Lisp 集会上,Gerry Sussman 被问到 MIT 为何停掉著名的 6.001 课程。这门课所用的教材是 Sussman 与 Abelson 所写的《Structure and Interpretation of Computer Programs》(中译《计算机程序的构造与解释》)。Sussman 的回答如下:

[译] Emacs Lisp 速成

2016-04-10
阅读 13 分钟
13.5k
你用着 Emacs 却不懂 Lisp 吧?欢迎阅读这篇 Emacs Lisp 入门教程!它应该能够助你搞定 Emacs Lisp,从而更加自如的驾驭 Emacs。

对文式编程的一些误解

2016-04-03
阅读 1 分钟
3.8k
几年前,王垠写了一篇批判文式编程的文章『On literate programming』([链接] )。他在 2014 年写的一篇文章『我和权威的故事』([链接] ) 中还是坚持着原有的观点。

<译> 函数类型

2016-03-18
阅读 9 分钟
8.4k
原文见 [链接] -> 上一篇:《函子性》 译注:由于距离上一章翻译的时间太久,所以有些内容可能有点不太相符。等我翻译完下一篇,再找时间校对一下。 到现在为止,我已多次语焉不详的提到函数类型。函数类型有别于其他类型。 以 Integer 为例,它是整数的集合。Bool 是两个元素构成的集合。然而一个函数类型 a -> b...

使用 GNU m4 为 Markdown 添加目录支持

2016-01-21
阅读 3 分钟
5.6k
Nikola 支持多种标记语言,我只用过 RST 与 Markdown。RST 用起来要比 Markdown 繁琐一些,但它的标记也更丰富一些,譬如 RST 提供了产生文章目录的标记(Table of Contents, TOC),而 Markdown 没有这一标记。不过,由于 Markdown 支持 HTML 的直接嵌入,它所缺乏的功能,我们可以从其他途径予以补充。