OpenGL學習(二)畫線段DDA演算法

2021-10-06 14:06:16 字數 1185 閱讀 9612

所謂dda就是數字微分分析式,假設線段起點(x1,y1),終點(x2,y2)則斜率k=(y2-y1)/(x2-x1),線段中每乙個點的座標都可以由前乙個點的座標變化乙個增量(dx,dy)而得到,所以其遞迴式就為:

x(i+1)=x(i)+dx;

y(i+1)=y(i)+dy;

其中dx和dy的確定原則如下:

如果|dx|>|dy|,取dx=1;dy=k;

如果|dx|<=|dy|,取dy=1;dx=k;

也就是誰大誰取1,小的取斜率;

然後不斷遞迴畫點,使x增加到x2或接近x2為止。

// dda_linesegment.cpp : 此檔案包含 "main" 函式。程式執行將在此處開始並結束。

//#include

"pch.h"

#include

//包含了wgl函式

#include

//opengl庫

#include

//opengl庫

#include

//處理視窗管理操作

#include

#include

//標準輸入輸出函式

#include

//最常用的系統函式

#include

//數學函式

using

namespace std;

float xs =

10.0

;//線段的起點和終點

float xe =

100.0

;float ys =

10.0

;float ye =

100.0

;//初始化操作

void

init()

void

linedda

(float xs,

float ys,

float xe,

float ye)

else

for(

int i =

1; i <= steps; i++)}

//顯示直線

void

linesegment

(void

)int

main

(int argc,

char

*ar**)

opengl學習筆記3 2 在3D中畫線

本節學習畫線。繪製線的方式和繪製點的方式類似,本節主要看 include gl freeglut.h include define gl pi 3.1416f void renderscene void glend glpopmatrix 設定線段的寬 glfloat y glfloat fsize...

OpenGL學習之路2 畫乙個點

放在github上 這一節比上一節 開啟乙個視窗 多了需要使用glew庫和3d數學庫 glew是opengl的擴充套件庫,用於幫助c c 開發者初始化擴充套件 opengl擴充套件功能 並書寫可移植的應用程式。這個可以通過上網搜教程自行安裝引用。3d函式庫可以用網上的,也可以用源教程裡的。這裡我是根...

OPENGL學習筆記(一)畫乙隻dinosaur

opengl這個庫好,比起之前用過的opencv,cuda等開放庫,opengl才幾兆,不用安裝,而且相對於vtk來說,opengl封裝好的函式較為底層,靈活度較高,也可以更好地體現自己編寫的演算法的好壞。opengl寫程式先要opengl的標頭檔案,lib,dll相關配置可以在網上找到,這裡不再累...