Bresenham畫線演算法(計算機圖形學)
#include <graphics.h>
#include <conio.h>
#include <iostream.h>
// 使用中點演算法畫任意斜率的直線(包括起始點,不包括終止點)
void Line_Midpoint(int x1, int y1, int x2, int y2, int color)
{
int x = x1, y = y1;
int a = y1 - y2, b = x2 - x1;
int cx = (b >= 0 ? 1 : (b = -b, -1));
int cy = (a <= 0 ? 1 : (a = -a, -1));
putpixel(x, y, color);
int d, d1, d2;
if (-a <= b) // 斜率絕對值 <= 1
{
d = 2 * a + b;
d1 = 2 * a;
d2 = 2 * (a + b);
while(x != x2)
{
if (d < 0)
y += cy, d += d2;
else
d += d1;
x += cx;
putpixel(x, y, color);
}
}
else // 斜率絕對值 > 1
{
d = 2 * b + a;
d1 = 2 * b;
d2 = 2 * (a + b);
while(y != y2)
{
if(d < 0)
d += d1;
else
x += cx, d += d2;
y += cy;
putpixel(x, y, color);
}
}
}
//Bresenham畫線演算法
void Interger_Bresenham_Line(int x0,int y0,int x1,int y1,int color){
int x,y,dx,dy,e;
dx=x1-x0;
dy=y1-y0;
e=-dx;
x=x0;
y=y0;
for(int i=0;i<=dx;i++){
putpixel(x,y,color);
x=x+1;
e=e+2*dy;
if(e>=0){
y=y+1;
e=e-2*dx;
}
}
}
// 主函式
void main()
{
// 輸入起點和終點
int x1,y1,x2,y2;
cout<<"請輸入起點:";
cin>>x1>>y1;
cout<<"請輸入終點:";
cin>>x2>>y2;
x1=x1+250;
y1=250-y1;
x2=x2+250;
y2=250-y2;
//初始化螢幕大小
initgraph(500, 500);
// 測試畫線
Line_Midpoint(0, 250, 500, 250, RED);//x軸
Line_Midpoint(250, 0, 250, 500, RED);//y軸
Interger_Bresenham_Line(300,200,400,250,YELLOW);
// 按任意鍵退出
getch();
closegraph();
}
相關文章
- 計算機圖形學----DDA、Bresenham直線演算法計算機演算法
- Bresenham畫線演算法C++演算法C++
- Bresenham高效畫線演算法 (轉)演算法
- 計算機圖形學-線性過濾計算機
- 計算機圖形學計算機
- 4次Bezier曲線--計算機圖形學 opengl計算機
- VC++ Bresenham畫線例項C++
- 計算機圖形學(二)輸出圖元_20_章節總結_程式展示_蝸形線、心形線、螺旋線計算機
- 計算機圖形學課程總結計算機
- 計算機圖形學 第四章 圖形變換計算機
- 計算機圖形學之矩陣變換計算機矩陣
- 計算機圖形學入門·光柵化計算機
- 計算機圖形學之紋理的作用計算機
- 【計算機圖形學課程】二.MFC滑鼠響應函式模擬畫圖軟體計算機函式
- 數學在計算機圖形學中的應用計算機
- CMU出品,計算機圖形學秋季課程已上線,B站同步字幕影片計算機
- 計算機圖形學:虛擬和現實世界的融合計算機
- 計算機小白大資料學習線路圖計算機大資料
- 計算機圖形學(三)_圖元的屬性_章節總結(下)計算機
- 計算機圖形學原理及實踐——C語言描述pdf計算機C語言
- 計算機圖形學學會:75%的宜家產品目錄都是電腦合成圖片計算機
- 【計算機圖形學課程】一.MFC基本繪圖函式使用方法計算機繪圖函式
- 【十天自制軟渲染器】DAY 02:畫一條直線(DDA 演算法 & Bresenham’s 演算法)演算法
- 計算機圖形學(二)輸出圖元_20_章節總結_程式展示_餅圖計算機
- 《計算機圖形學原理及實踐》學習筆記之第十一章計算機筆記
- 計算機圖形:三維觀察之投影變換計算機
- 一個碼農是如何用遊戲推動計算機圖形學的?遊戲計算機
- 計算機圖形學(一) 視訊顯示裝置_1_CRT原理計算機
- css 畫圖形大全CSS
- 畫影圖形: SVG & Canvas 圖形對比SVGCanvas
- 大學計算機必修課新講--編譯原理+作業系統+圖形學計算機編譯原理作業系統
- 計算機圖形學(CG技術)在日本動畫製作中的應用計算機動畫
- java3D與計算機圖形學期末複習 第二章Java3D計算機
- 箱形圖(python畫圖)Python
- 對話高博(一)| 機器碼、Pascal,以及計算機學習的分形(圖靈訪談)機器碼計算機圖靈
- 學習雲端計算有哪些優勢?雲端計算教程學習路線圖
- 用PowerBuilder建造計算機圖形評分專家系統 (轉)UI計算機
- 【HMC Core 6.0全球上線】圖形計算服務新外掛,助力高畫質3D手遊創新3D