計算機圖形學課程實驗報告
西安工程大學理學院
資訊與計算科學
2011-3-24
一)上機實驗1:繪製直線與圓
班級: 08級資訊與計算科學01班
姓名郝愛虎
學號: 40808010123
上機實驗(1)的題目和要求
一、實驗目的
掌握直線和圓的生成演算法思想,並能上機程式設計實現相應的演算法。
二、實驗要求(direction)
1. 每個學生單獨完成。
2. 開發語言規定為c語言。
3. 請在自己的實驗報告上寫明姓名、學號、班級。
4. 主程式中包括源**注釋。
三、實驗題目
實驗題1: 實現中點畫線法畫任意直線。(要求用不同顏色)
測試資料l1 (10,10) (200,10)
l2(10,10) (10,200)
l3(10,10) (200,150)
l4(10,10) (150,200)
l5(10,120) (200,10)
l6(10,200) (120,10)
此處寫入個人程式:
#include<>
midpointline(int x0,int y0,int x1, int y1,int color)
else if(x1 == x0)
}else if((x1-x0)*(y1-y0)>0)
if((x1-x0)<(y1-y0))
}else if((x1-x0)*(y1-y0)<0)
if((x1-x0)>(y0-y1))else if((x1-x0)<(y0-y1))
}/*以上為討論斜率的各種情形*/
a=y0-y1, b=x1-x0, d=2*a+b; /*劃線函式*/
d1=2*a, d2=2*(a+b);
x=x0, y=y0;
putpixel(x, y, color);
while (x
else
if(flag==0)else if(flag==1)else if(flag==2)else if(flag==3)
}} main()
實驗題2:實現bresenham畫線演算法畫出任意直線段。(用不同顏色)
程式如下:
#include <>
bresenhamline(int x0,int y0,int x1,int y1,int color)else if(x1 == x0)
}else if((x1-x0)*(y1-y0)>0)
if((x1-x0)<(y1-y0))
}else if((x1-x0)*(y1-y0)<0)
if((x1-x0)>(y0-y1))else if((x1-x0)<(y0-y1)){
x0 = -x0; x1 = -x1;
temp = y0; y0 = x0; x0 = temp;
temp = y1; y1 = x1; x1 = temp;
temp = x0; x0 = x1; x1 = temp;
temp = y0; y0 = y1; y1 = temp;
直線與圓專題
一 直線知識點概述 一 直線的傾斜角與斜率任何直線都有傾斜角,但不一定都有斜率。經過兩點 的直線的斜率為利用斜率相等解決三點共線問題。二 直線方程 五大形式及其適用範圍性 1 點斜式 已知直線過點,斜率為,則直線方程為,不包括垂直於軸的直線 2 斜截式 已知直線在軸上的截距為和斜率,則直線方程為,不...
直線與圓教案
第四講直線與圓 圓與圓的位置關係 z 知識點一直線與圓的位置關係 1 直線與圓的位置關係 直線與圓的位置關係有三種 相交 相切 相離 用來判斷直線與圓的位置關係的方法主要有兩種 1 代數法 把直線方程與圓的方程聯立方程組,消去x或y整理成一元二次方程後,計算判別式 b2 4ac 2 幾何法 利用圓心...
直線與圓 4
第9章第2講 一 選擇題 1 直線3x 2y 4 0與2x 3y 4 0 a 平行b 垂直 c 重合 d 關於y x對稱 答案 b 2 2009 廣州二模 已知點a 1,0 直線l y 2x 4,點r是直線l上的一點 若 則點p的軌跡方程為 a y 2xb y 2x c y 2x 8d y 2x 4...