因為學習了c語言想著用c語言繪製立體的球體,先說自己的思路吧,先是隨機生成一些球體的座標,再將這些座標通過公式轉化為2d的座標,繪製在電腦上。程式中包括了3d點的旋轉,平移,縮放,大家可以參考一下。通過自己改變一些東西,可能會有更有趣的發現吧。
這裡用到了線性代數的知識,大家可以參考以下鏈結,程式中的3d點的旋轉**可以在裡面找到,當然大家也可以通過自己的認知來編寫更有趣的東西。
// 定義三維點
struct point3d
;point3d p3d[maxpoint]; // 所有的三維點
double viewz = 3; // 視點 z 軸座標
// 初始化三維點
void initpoint()
//使球體按比例縮放
void zoom(point3d &p,double magnification) //magnification是縮放的倍數
//使球體平移
void translation(point3d &p,double x_direction,double y_direction,double z_direction)
// 使三維點按 x 軸旋轉指定角度
void rotatex(point3d &p, double angle)
// 使三維點按 y 軸旋轉指定角度
void rotatey(point3d &p, double angle)
// 使三維點按 z 軸旋轉指定角度
void rotatez(point3d &p, double angle)
// 將三維點投影到二維螢幕上(單點透視)
point projection(point3d p)
int main()
{ initgraph(640, 480);
initpoint();
beginbatchdraw();
int c;
point p2d;
while (!_kbhit())
{ cleardevice(); // 清除螢幕
for (int i = 0; i需要graphics.h,time.h,math.h,conio.h這些標頭檔案的。
C 搭配Easyx繪製小房子
繪製小房子 include include include include intmain void polygon pots1,3 延遲一秒 sleep delay point pots polygon pots,3 繪製頂部側面四邊形 x 652895.529公尺 y 511125.489公尺 ...
C語言EasyX詳解 小球碰撞
首先先來認識下easyx easyx 是針對 c c 的圖形庫,可以幫助使用c c 語言的程式設計師快速上手圖形和遊戲程式設計。比如,可以用 vc easyx 很快的用幾何圖形畫乙個房子,或者一輛移動的小車,可以編寫俄羅斯方塊 貪吃蛇 黑白棋等小遊戲,可以練習圖形學的各種演算法,等等。fillcir...
c語言 easyx實現飄雪花效果
首先,需要設定雪花在乙個視窗中的總數目,這個關係到雪花的空間密度。假定有20個雪花。就需要兩個陣列,分別為x 20 y 20 來分別記錄x座標和y座標。通過自定義乙個函式來初始化雪花的位置。這裡需要用到隨機數的相關知識。其次,如果當雪花落下時,在雪花落的位置畫乙個雪花,模擬雪花殘留在地面上。當雪花的...