试验二计算机图形学中点画线法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x=x1;
y=y1;
glVertex2i(x1, y1);
for(i=1;i<=dx;i++)
{
glBegin(GL_POINTS);
glVertex2i(x, y);
x++;
if(d<0){y++;d=d+1-k;}
else d=d-k;
Sleep(10);
glEnd();//结束绘制
glFlush();//进行刷新
auxMainLoop(Draw);//进行绘制
}
glClear(GL_COLOR_BUFFER_BIT);
}
void MidpointLine(int x1,int y1,int x2,int y2)
{
int i,x,y;
float dx, dy, d, k;
dx = x2-x1;
dy = y2-y1;
k=dy/dx;
if(k<=1)
{
d=0.5-k;
{
printf("please input the start point(x1,y1):");
scanf("%d,%d",&x1,&y1);
printf("please input the start point(x2,y2):");
scanf("%d,%d",&x2,&y2);
InitGL();//初始化
}
}
iFra Baidu bibliotek(k>1)
{
d=1-0.5*k;
x=x1;
y=y1;
glVertex2i(x1, y1);
for(i=1;i<=dy;i++)
{
glBegin(GL_POINTS);
glVertex2i(x, y);
y++;
if(d<0){x++;d=d+1;}
else d=d-k+1;
Sleep(10);
中点画线法
#include <windows.h>
#include <stdio.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>
//opengl32.lib glu32.lib glaux.lib
int x1,y1,x2,y2;
glEnd();//结束绘制
glFlush();//进行刷新
}
}
}
void CALLBACK Draw(void)
{
//glBegin(GL_POINTS);
MidpointLine(x1,y1,x2,y2);
//glEnd();//结束绘制
//glFlush();//进行刷新
}
void main(void)
void InitGL(void)
{
auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
auxInitPosition(0,0,640,480);
auxInitWindow("FirstAuxOpenGLDemo");
glClearColor(0.6,0.6,0.6,0.0);
y=y1;
glVertex2i(x1, y1);
for(i=1;i<=dx;i++)
{
glBegin(GL_POINTS);
glVertex2i(x, y);
x++;
if(d<0){y++;d=d+1-k;}
else d=d-k;
Sleep(10);
glEnd();//结束绘制
glFlush();//进行刷新
auxMainLoop(Draw);//进行绘制
}
glClear(GL_COLOR_BUFFER_BIT);
}
void MidpointLine(int x1,int y1,int x2,int y2)
{
int i,x,y;
float dx, dy, d, k;
dx = x2-x1;
dy = y2-y1;
k=dy/dx;
if(k<=1)
{
d=0.5-k;
{
printf("please input the start point(x1,y1):");
scanf("%d,%d",&x1,&y1);
printf("please input the start point(x2,y2):");
scanf("%d,%d",&x2,&y2);
InitGL();//初始化
}
}
iFra Baidu bibliotek(k>1)
{
d=1-0.5*k;
x=x1;
y=y1;
glVertex2i(x1, y1);
for(i=1;i<=dy;i++)
{
glBegin(GL_POINTS);
glVertex2i(x, y);
y++;
if(d<0){x++;d=d+1;}
else d=d-k+1;
Sleep(10);
中点画线法
#include <windows.h>
#include <stdio.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>
//opengl32.lib glu32.lib glaux.lib
int x1,y1,x2,y2;
glEnd();//结束绘制
glFlush();//进行刷新
}
}
}
void CALLBACK Draw(void)
{
//glBegin(GL_POINTS);
MidpointLine(x1,y1,x2,y2);
//glEnd();//结束绘制
//glFlush();//进行刷新
}
void main(void)
void InitGL(void)
{
auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
auxInitPosition(0,0,640,480);
auxInitWindow("FirstAuxOpenGLDemo");
glClearColor(0.6,0.6,0.6,0.0);