计算机图形学中简单光照模型的全部代码 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();
}
展开
 我来答
跃水_kickflip
2010-07-12 · 超过26用户采纳过TA的回答
知道答主
回答量:108
采纳率:0%
帮助的人:35.3万
展开全部
作业看得是效果。
没有简单的模型,怎么看光照模型的效果啊?
画几个球体试试?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
VSH艾羽
2025-09-30 广告
上海艾羽信息科技有限公司是一家以CAE软件销售、技术咨询及服务,仿真咨询及规划布局为一体的高科技公司。作为ANSYS的合作伙伴,艾羽致力于将ANSYS推出的产品,通过业界性能颇佳、丰富的工程仿真软件产品组合帮助客户解决复杂的仿真难题。力求与... 点击进入详情页
本回答由VSH艾羽提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式