计算机图形学代码之三角形绘制(实验三)

使用软件vc++
代码是C语言的
此代码教程配合以下这本书的(版本升级也没有关系)
此代码并不是课本上的思路,稍微取巧了。
思路讲解:
由于在平面上点 了3个点,3个点连成3条线,因此知道了3条直线的方程。
因为知道了方程,所以可以从一条直线出发(设为t1),从t1开始顺着t1出发,同时向其他1条线相连,使用已经现成的写直线的代码即可。

#include "Line.h"
# include <math.h>
# include <stdio.h>
# include <stdlib.h>
void drawLineBresenham(int x1 ,int y1,int x2,int y2)//画直线{glColor3f(0.0f,1.0f,0.0f);glBegin(GL_LINES);  glVertex2i(x1,y1);glVertex2i(x2,y2);glEnd();glFlush();}void fillTriangle(int x1,int y1,int x2,int y2,int x3,int y3)
{glColor3f(0.0f,0.0f,1.0f);glBegin(GL_LINES);   int i=0;double dk1,dk2,dk3; int tx,ty;if(y1>=y2)//比较三个点的顺序,从下向上{tx=x2;x2=x1;x1=tx;ty=y2;y2=y1;y1=ty;}if(y1>=y3){tx=x3;x3=x1;x1=tx;ty=y3;y3=y1;y1=ty;}if(y2>=y3) {tx=x3;x3=x2;x2=tx;ty=y3;y3=y2;y2=ty;}dk1=(x2-x1)*1.0/(y2-y1);dk2=(x3-x2)*1.0/(y3-y2);dk3=(x3-x1)*1.0/(y3-y1);printf("x1:%d, y1:%d , dk1:%lf\n",x1,y1,dk1);printf("x2:%d, y2:%d , dk2:%lf\n",x2,y2,dk2);printf("x3:%d, y3:%d , dk3:%lf\n",x3,y3,dk3);double dx1,dx2,dx3,dy1,dy2,dy3;double dx4,dy4;int k;dx1=x1;dy1=y1;dx2=x1;dy2=y1;dx3=x2;dy3=y2;dx4=x3;dy4=y3;for(;dy1<y2;dy1++,dy2++){drawLineBresenham(dx1, dy1, dx2, dy2);dx2+=dk1;dx1+=dk3;}for(;dy3<=y3;dy1++,dy3++){drawLineBresenham(dx1, dy1, dx3, dy3);dx3+=dk2;dx1+=dk3;}glEnd();glFlush();
}

成果

计算机图形学代码之三角形绘制相关推荐

  1. 计算机图形学 | 实验四:绘制一个球体

    计算机图形学 | 实验四:绘制一个球体 计算机图形学 | 实验四:绘制一个球体 封装Shader 为什么要封装Shader 如何使用 绘制球模型 球面顶点遍历 构造三角形图元 开启线框模式 开启面剔除 ...

  2. 计算机图形学 | 实验三:绘制一个四边形

    计算机图形学 | 实验三:绘制一个四边形 计算机图形学 | 实验三:绘制一个四边形 初始化 顶点输入 数据处理 VAO.VBO 顶点属性 顶点着色器和片段着色器 渲染 EBO 完整代码 华中科技大学& ...

  3. 计算机图形学实验二 《绘制任意斜率的直线》

    计算机图形学实验二 <绘制任意斜率的直线> 视频讲解地址 一.Bresenham算法 用视频讲会好点我之前也录过相关视频可以先凑合看 二.设计CLine类 之前也说了C++一个类是由源文件 ...

  4. 五边形镶嵌计算机程序,计算机图形学代码,五角星与五边形的转换,直线扫描等算法...

    [实例简介] 计算机图形学代码,五角星与五边形的转换,直线扫描的dda算法,中点画线 [实例截图] [核心代码] 325 └── 325 ├── 325.aps ├── 325.clw ├── 325 ...

  5. 计算机图形学代码3D太阳系,计算机图形学-绘制太阳系.doc

    <计算机图形学-绘制太阳系.doc>由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关<计算机图形学-绘制太阳系.doc>文档请在天天文库搜索. 1.实验名 ...

  6. 平移计算机图形学代码注释,求代码注释:计算机图形学的OpenGL画四面体。高手来吧。争取每句都注释下。谢谢...

    求代码注释:计算机图形学的OpenGL画四面体.高手来吧.争取每句都注释下.谢谢 答案:3  信息版本:手机版 解决时间 2018-12-20 05:00 已解决 2018-12-20 01:58 求 ...

  7. 计算机图形学实验二交互式绘制多边形

    一.实验目的 掌握双缓冲绘图技术. (2)掌握人机交互技术. (3)掌握填充动态多边形的有效边表算法. 二.实验步骤 (1)在VS2017环境下创建MFC应用程序工程(单文档) (2)添加命令消息处理 ...

  8. 深圳大学计算机图形学实验一——OpenGL绘制布布头像

    尝试利用OpenGL绘制一些可爱的表情包. 一二布布是较为流行的一套萌系表情包.我选择绘制一二布布系列的一张表情包.这张表情包描绘了趴在窗户上的一只小棕熊布布. 表情包印在手机壳的样例如下: 头的绘制 ...

  9. 【计算机图形学】实验一 · 绘制金刚石图案

    一.实验任务 定义二维坐标系原点位于屏幕中心,x轴水平向右为正,y轴铅直向上为正. 以二维坐标系原点为圆心绘制半径为r的圆,将圆的n等分点使用直线彼此连接形成金刚石图案. 程序运行界面提供" ...

  10. 计算机图形学--三维图形表面绘制

    目录 三维立体图形绘制基本思想 球体绘制思想 代码实现: 圆环体绘制思想 代码实现: 正棱柱体绘制思想 正棱台体以及正棱锥体绘制思想 正棱台体绘制代码实现: 三维立体图形绘制基本思想 对于三维图形的立 ...

最新文章

  1. sql2000 转sql2008
  2. 爬虫python需要什么软件-python大神们!都在用什么爬虫工具呢?
  3. 从ffmpeg源代码分析如何解决ffmpeg编码的延迟问题(如何解决编码 0 延时)
  4. 主成分分析以及应用:企业综合实力排序
  5. Office web app server2013详细的安装和部署
  6. linux drbd同步,DRBD数据镜像主备节点同步数据
  7. 【数据结构】30、hashmap=》hash 计算方式
  8. jmc线程转储_Java线程转储– VisualVM,jstack,kill -3,jcmd
  9. 2019 CSP-S第二轮认证一等奖获奖名单
  10. c语言三角函数例题,三角函数的诱导公式习题及答案解析.doc
  11. 组件中引入echarts饼状图去除他的划过放大效果。
  12. 福大软工 · 真 · 最终作业
  13. NVME(SATA)固态硬盘按装win7/10
  14. rstudio查询命令_R语言和RStudio的一些用法,常用命令等
  15. 关于大图片裁剪在华为等手机上无法使用问题
  16. IDEA括起选中的选中的内容
  17. 出生日期正则表达式丨出生日期年月日正则如何表达?
  18. 【深度学习】ResNet残差网络 ResidualBlock残差块实现(pytorch) | 跟着李沐学AI笔记 | ResNet18进行猫狗分类
  19. 阿里达摩院XR实验室2022校招内推
  20. Python之洗牌游戏

热门文章

  1. 复杂网络分析工具及其比较(转)
  2. 2020最详细下载安装注册最新版 Secure CRT 8.7
  3. 【Android应用开发】 推送原理解析 极光推送使用详解 (零基础精通推送)
  4. 很棒的VC界面库 - GuiToolkit
  5. projectwbs表_从Project 2007导出WBS图表到Visio 2007
  6. VOSviewer 操作指南 简明
  7. python人口普查数据数据分析_美国人口普查数据可视化探索和收入水平预测建模...
  8. 计算机组成原理题集,计算机组成原理试题集含答案
  9. web游戏/网页游戏网址
  10. 【转】SVN ——开放源代码的版本控制系统