
计算机图形学中简单光照模型的全部代码 30
要一个简单光照模型的全部代码比如下面这个DAA直线的全部代码#include<GL/glut.h>#include<stdlib.h>#include<math.h>#i...
要一个简单光照模型的全部代码 比如下面这个DAA直线的全部代码
#include <GL/glut.h>
#include <stdlib.h>
#include <math.h>
#include <Windows.h>
void setPixel(GLint x, GLint y){
glBegin(GL_POINTS);
glVertex2i(x, y);
Sleep (5);
glEnd();
glFlush();
}
void init(void)
{//初始化工作
glClearColor (1.0, 1.0, 1.0, 0.0); // 指定清空颜色(背景色)为白色}
gluOrtho2D (0.0, 400.0, 0.0, 400.0); //指定坐标系上显示的区域
}
/* Bresenham line-drawing procedure for |m| < 1.0. */
void lineBres (int x0, int y0, int xEnd, int yEnd){
int dx = fabs (xEnd - x0), dy = fabs(yEnd - y0);
int p = 2 * dy - dx;
int twoDy = 2 * dy, twoDyMinusDx = 2 * (dy - dx);
int x, y;
/* Determine which endpoint to use as start position. */
if (x0 > xEnd) {
x = xEnd;
y = yEnd;
xEnd = x0;
}
else {
x = x0;
y = y0;
}
setPixel (x, y);
while (x < xEnd) {
x++;
if (p < 0)
p += twoDy;
else {
y++;
p += twoDyMinusDx;
}
setPixel (x, y);
}
}
void myDisplay(void)
{//图形绘制
glClear (GL_COLOR_BUFFER_BIT); // 清空显示窗口
glColor3f (0.0, 0.0, 1.0); // 指定前景色(当前绘制颜色)为蓝色
lineBres (10,10,400,400);
glEnd();
glFlush();
}
void main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("窗口名称");
init();
glutDisplayFunc(&myDisplay);
glutMainLoop();
} 展开
#include <GL/glut.h>
#include <stdlib.h>
#include <math.h>
#include <Windows.h>
void setPixel(GLint x, GLint y){
glBegin(GL_POINTS);
glVertex2i(x, y);
Sleep (5);
glEnd();
glFlush();
}
void init(void)
{//初始化工作
glClearColor (1.0, 1.0, 1.0, 0.0); // 指定清空颜色(背景色)为白色}
gluOrtho2D (0.0, 400.0, 0.0, 400.0); //指定坐标系上显示的区域
}
/* Bresenham line-drawing procedure for |m| < 1.0. */
void lineBres (int x0, int y0, int xEnd, int yEnd){
int dx = fabs (xEnd - x0), dy = fabs(yEnd - y0);
int p = 2 * dy - dx;
int twoDy = 2 * dy, twoDyMinusDx = 2 * (dy - dx);
int x, y;
/* Determine which endpoint to use as start position. */
if (x0 > xEnd) {
x = xEnd;
y = yEnd;
xEnd = x0;
}
else {
x = x0;
y = y0;
}
setPixel (x, y);
while (x < xEnd) {
x++;
if (p < 0)
p += twoDy;
else {
y++;
p += twoDyMinusDx;
}
setPixel (x, y);
}
}
void myDisplay(void)
{//图形绘制
glClear (GL_COLOR_BUFFER_BIT); // 清空显示窗口
glColor3f (0.0, 0.0, 1.0); // 指定前景色(当前绘制颜色)为蓝色
lineBres (10,10,400,400);
glEnd();
glFlush();
}
void main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("窗口名称");
init();
glutDisplayFunc(&myDisplay);
glutMainLoop();
} 展开
展开全部
作业看得是效果。
没有简单的模型,怎么看光照模型的效果啊?
画几个球体试试?
没有简单的模型,怎么看光照模型的效果啊?
画几个球体试试?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2025-09-30 广告
上海艾羽信息科技有限公司是一家以CAE软件销售、技术咨询及服务,仿真咨询及规划布局为一体的高科技公司。作为ANSYS的合作伙伴,艾羽致力于将ANSYS推出的产品,通过业界性能颇佳、丰富的工程仿真软件产品组合帮助客户解决复杂的仿真难题。力求与...
点击进入详情页
本回答由VSH艾羽提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询