【发布时间】:2009-12-14 15:21:12
【问题描述】:
我正在学习 python,因为它看起来很漂亮,而且我知道一点 ruby 和 perl。
以下是在屏幕上绘制 3d 点的 C 程序。我以此为例,因为它使用数组、结构和函数调用。我遗漏了课程,因为我相信这种(OOP)的东西在所有语言中都被同时使用(如果我错了,请纠正我)。了解我确实知道如何在 python 中编写以下内容(在 google 的帮助下),但我想知道您将使用哪种方法以及为什么。
如果您没有时间或不喜欢这种事情,请不要回答!
#include <stdlib.h>
int screenWidth = 10;
int screenHeight = 10;
char *buf;
inline void draw3dPoint(int *i3dPoint) {
buf[
(((i3dPoint[1] / i3dPoint[2]) + (screenHeight/2)) * screenWidth) +
(i3dPoint[0] / i3dPoint[2]) + (screenWidth/2)] = 1;
}
main() {
int x, y;
buf = malloc(sizeof(char)*screenWidth*screenHeight);
for(x = 0; x < screenWidth * screenHeight; x++)
buf[x] =0;
int *i3dPoint = malloc(sizeof(int)*3);
i3dPoint[0] = 3; i3dPoint[1] = 0; i3dPoint[2] = 5;
draw3dPoint(i3dPoint);
i3dPoint[0] = 0; i3dPoint[1] = 4; i3dPoint[2] = 2;
draw3dPoint(i3dPoint);
i3dPoint[0] = -3; i3dPoint[1] = -4; i3dPoint[2] = 3;
draw3dPoint(i3dPoint);
for(y = 0; y < screenHeight; y++) {
for(x = 0; x < screenWidth; x++)
if(buf[(y*screenWidth)+x])
printf("#");
else
printf(" ");
printf(".\n");
}
free(buf);
free(i3dPoint);
return 0;
}
【问题讨论】:
-
我发现您的问题令人困惑(看到我的回答中的 cmets),您想知道其他人将如何在 python 中实现此特定代码,或者其他人会考虑什么样的包/框架练习?
-
我想看看将使用的数据类型和循环样式等。