计算机图形学代码之三角形绘制

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

使用软件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=
计算机图形学随机生成三角形三角形颜色的 C++ 代码可以参考以下示例: ``` #include <iostream> #include <cstdlib> // 包含随机数函数需要的头文件 #include <GL/glut.h> // 包含 OpenGL 库需要的头文件 using namespace std; void display(void) { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0f, 1.0f, 1.0f); // 将颜色设置为白色 glBegin(GL_TRIANGLES); // 开始绘制三角形 for (int i = 0; i < 3; i++) { // 随机生成三角形的顶点坐标和颜色 float x = rand() / (float)RAND_MAX * 2.0f - 1.0f; float y = rand() / (float)RAND_MAX * 2.0f - 1.0f; float r = rand() / (float)RAND_MAX; float g = rand() / (float)RAND_MAX; float b = rand() / (float)RAND_MAX; glColor3f(r, g, b); // 将颜色设置为随机生成的颜色 glVertex2f(x, y); // 添加顶点坐标 } glEnd(); // 结束绘制三角形 glFlush(); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(250, 250); glutInitWindowPosition(100, 100); glutCreateWindow("Random Triangle"); glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // 将背景颜色设置为黑色 glutDisplayFunc(display); glutMainLoop(); return 0; } ``` 这段代码使用 OpenGL 库绘制三角形,使用 `rand()` 函数随机生成三角形的顶点坐标和颜色。其中 `glBegin(GL_TRIANGLES)` 和 `glEnd()` 用于指定三角形绘制,`glVertex2f(x, y)` 用于添加三角形的顶点坐标,`glColor3f(r, g, b)` 用于设置三角形的颜色。在 `main()` 函数中,我们创建了一个名为 "Random Triangle" 的窗口,并通过 `glClearColor()` 设置了背景颜色。最后调用 `glutMainLoop()` 进入主循环,开始绘制图形。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值