資源簡介
逐點繪制漸變三角形,不用調用庫函數的方法,實現點畫三角形。
代碼片段和文件信息
#include?
#include?
#include?
#include?
int?x0=200y0=100x1=400y1=200x2=300y2=300;
float?abca0a1a2a4;?????????????????????????//用于存儲到三條邊的系數
int?stepskj;
int?i0i1; //過三角形內一點平行于x軸的直線與三角形兩邊的交點
void?display(void)
{
???glClear?(GL_COLOR_BUFFER_BIT);
???glBegin(GL_POINTS);
???/*****************************
???方法思路:
???從三角形最高頂點,由上至下,用平行于x軸的直線掃描三角形。通過確定與三角形相交的兩個點的顏色參數,按比例歸一化確定該條線段上
???各個點的顏色參數。比例的確定,應用了三角形等比的思想,即高的比等于斜邊的比。對于非平底三角形,將三角形分為上下兩部分,以過y
???坐標居中的點的平行線為界
*/
???for(j=y2;j>y1;j--)
???{
???i0=((x2-x0)*(j-y2)+(y2-y0)*x2)/(y2-y0);
???i1=((x2-x1)*(j-y2)+(y2-y1)*x2)/(y2-y1);
???a0=((float)y2-(float)j)/(float)(y2-y0);//R
??//?printf(“%f\n“a0);
???a1=(float)((j-y0))/(float)((y2-y0));//BL
??
- 上一篇:一個完整的C語言編譯器
- 下一篇:匯編轉為shellcode形式
評論
共有 條評論