所謂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相關配置可以在網上找到,這裡不再累...