繪製直線與圓演算法

2023-01-01 12:30:03 字數 1597 閱讀 6112

計算機圖形學課程實驗報告

西安工程大學理學院

資訊與計算科學

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...