point renderer(1)

| 分类 Graphics  | 标签 point 

从小,我就在观察这个世界,人事物种种千奇百怪,于寻常中感叹造物主的神奇。我想,所谓的艺术家,无不以他们的作品传达对这个世界的感悟。黑客与画家,怎能没有一颗创世之心。携笔从戎,纵码奔腾,岂不快哉!

而今,我将以错落有致的代码,亲手描绘这个世界。


三生万物

世界之初,一片虚无。所谓虚无,即无光无色,无我。

我说,这应该是个多彩的世界

typedef struct {
	unsigned char r,g,b;
}color;

只见平静的虚无兀然开始颤抖,良久,一声沉闷的心跳响起,那无尽的无色虚无荡开一圈涟漪。紧接着,如雷鸣的心跳声逐渐加快,一圈圈涟漪随之荡开,那无尽之中似乎有什么东西即将孕育而出。轰然一声,一点光华闪动,漆黑的虚无中猛然迸发出三道夺目的光芒,原来是三原色。火爆的红,生命的绿,宁静的蓝,三道光芒上下翻飞碰撞,洒出更多色彩,一时间,这片虚无生气盎然,满眼尽是颜色的世界。许久,RGB三道光芒汇聚一处,螺旋缠绕,各自发出最夺目的光芒,宛如白日。一声炸响,那团白光爆裂,化作无数光点,消散开来。世界回归平静,回归虚无,色即是空,空即是色。

我说,这个世界需容纳在一张1024*768大小的画布上,黑色即本色。

const int WIDTH  = 1024;
const int height = 768;
color canvas[WIDTH * HEIGHT] = {0};

画布有长宽,但心中的世界永无止境。黑色亦无色,亦全色。

我创造世界,我保存其剪影,使之传播大千世界。

int print(int width, int height, color *canvas)
{
	int length = width * height;
	FILE *f = fopen("image.ppm", "w");
	fprintf(f, "P3\n%d %d\n%d\n", width, height, 255);
	for(int i = 0; i < length, i++){
		fprintf(f, "%d %d %d ", canvas[i].r, canvas[i].g, canvas[i].b);
	}
	
	return fclose(f);
}

使用ppm格式保存,开头几行规定标准,长,宽,颜色位数,之后尽为平铺的颜色值(rgb)。如此保存成果,方不受各类操作系统窗口管理器之纠结。


参阅


Previous     Next