c語言繪製球體(通過easyx)

2021-08-26 12:15:56 字數 1129 閱讀 6353

因為學習了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座標。通過自定義乙個函式來初始化雪花的位置。這裡需要用到隨機數的相關知識。其次,如果當雪花落下時,在雪花落的位置畫乙個雪花,模擬雪花殘留在地面上。當雪花的...