• 大小: 2KB
    文件类型: .cpp
    金币: 2
    下载: 1 次
    发布日期: 2021-01-04
  • 语言: C/C++
  • 标签: 图形学  

资源简介

逐点绘制渐变三角形,不用调用库函数的方法,实现点画三角形。

资源截图

代码片段和文件信息

#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
  

评论

共有 条评论