#include <gl/glut.h>//实用工具包
#include<math.h>
#include<stdio.h>
#include<windows.h>
#include<gl/gl.h>
#include<gl/glu.h>
#include<gl/glaux.h>
#include<stdlib.h>
struct GLintPoint{GLint x;GLint y;
};GLintPoint p[2];
bool sig=false;
int scrw=640,scrh=480;void drawline()
{int dx=p[1].x-p[0].x;int dy=p[1].y-p[0].y;int steps,k;float xIncrement,yIncrement;float x=p[0].x,y=p[0].y;if (fabs(dx)>fabs(dy)){steps=fabs(dx);}else {steps=fabs(dy);}xIncrement=float(dx)/float(steps);//计算两个方向增量yIncrement=float(dy)/float(steps);glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0f,0.0f,0.0f);glBegin(GL_LINES);glVertex2i(x,y);//绘制起点for(k=0;k<steps;k++){x+=xIncrement;y+=yIncrement;glVertex2i(x,y);}glEnd();glFlush();
}
void myDisplay()
{glClear(GL_COLOR_BUFFER_BIT);glMatrixMode(GL_MODELVIEW);glLoadIdentity();glColor3f(0.0,0.0,1.0);if(sig)drawline();glutSwapBuffers();
}
void  myMouse(int button,int state,int x,int y)
{if(button==GLUT_LEFT_BUTTON&& state==GLUT_DOWN){p[0].x=x;p[0].y=scrh-y;sig=true;}glutPostRedisplay();
}
void myMotion(int x,int y)
{p[1].x=x;p[1].y=scrh-y;glutPostRedisplay();
}
int main(int argc,char **argv)
{glutInit(&argc,argv);glutInitWindowSize(scrw,scrh);glutInitWindowPosition(0,0);glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE);glutCreateWindow("gujinjie");glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0,scrw,0,scrh);glMatrixMode(GL_MODELVIEW);glClearColor(0.0f,0.0f,0.0f,0.0f);glViewport(0,0,scrw,scrh);glutMouseFunc(myMouse);glutDisplayFunc(myDisplay);glutMotionFunc(myMotion);glutMainLoop();return 0;
}

计算机图形学上机实验之DDV算法相关推荐

  1. java画bezier曲面_计算机图形学上机实验4-实现Bezier曲线和Bezier曲面的绘制

    <计算机图形学上机实验4-实现Bezier曲线和Bezier曲面的绘制>由会员分享,可在线阅读,更多相关<计算机图形学上机实验4-实现Bezier曲线和Bezier曲面的绘制(9页珍 ...

  2. 计算机图形学上机报告绘制圆,计算机图形学上机实验报告

    实验一:基本图形的绘制 一.实验目的与要求 (1)理解glut程序框架: (2)理解窗口到视区的变换 ; (3)理解OpenGL实现动画的原理: (4)添加代码实现中点Bresenham算法画直线: ...

  3. 计算机图形学上机实验一-画出一个钻石

    实验一:使用TC画出一个钻石: 代码: #include <stdio.h> #include <graphics.h> #include <math.h> voi ...

  4. 计算机图形学 裁剪算法源代码,OpenGL计算机图形学梁友栋裁剪算法实验代码及运行结果.doc...

    OpenGL计算机图形学梁友栋裁剪算法实验代码及运行结果.doc (10页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分  .<计算 ...

  5. 计算机基础数据表示实验,2018大学计算机基础上机实验报告

    <2018大学计算机基础上机实验报告>由会员分享,可在线阅读,更多相关<2018大学计算机基础上机实验报告(15页珍藏版)>请在人人文库网上搜索. 1.实验(一)1:计算机硬件 ...

  6. 计算机图形学直线段的生成算法

    计算机图形学直线段的生成算法C++实现,包括:DDA,中点画线,改进的Bresenham画线 文章目录 1.实验目的和内容 1.1实验目的 1.2实验内容 2.算法原理 2.1 DDA(数值微分算法) ...

  7. c语言 连通域算法 递归,VC++ 6.0编写计算机图形学中的种子填充算法,想用递归的八向连通域,求助!...

    VC++ 6.0编写计算机图形学中的种子填充算法,想用递归的八向连通域,求助!0 填充函数代码如下: void CComputerGraphicsView::PolygonFill2()//区域填充函 ...

  8. 西电java实验报告 界面_西电计算机Java上机实验报告.docx

    西电计算机Java上机实验报告.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. ...

  9. 计算机图形学直线裁剪原理,计算机图形学-3.2用Liang-Barsky算法实现直线段裁剪...

    计算机图形学-3.2用Liang-Barsky算法实现直线段裁剪 计算机图形学-3.2用Liang-Barsky算法实现直线段裁剪 (1)算法设计原理 依次处理(p1,q1)(p2,q2)(p3,q3 ...

最新文章

  1. 预训练BERT学习笔记_Storm*Rage的博客
  2. 22.25在计算机中如何储存,浮点数在计算机中存储方式
  3. c++ STL平常练习-1
  4. altera fpga 型号说明_A/X家FPGA架构及资源评估
  5. 第13章 程序的动态加载和执行(二,用户代码)
  6. Palo Alto 再次修复一个严重的 PAN-OS 漏洞
  7. idea 添加 golang 项目的 gopath
  8. 回顾Vue计算属性VS其他语法有感
  9. 当当网推“搜索+个性化”
  10. Mysql 常用命令
  11. 全角空格可复制粘贴,解决字符对齐问题
  12. smartsvn学习(-)
  13. 浅谈如何做好项目管理
  14. 「大冰撸设计模式」java 创建型模式之单例模式
  15. es routing 简介
  16. 计算机文字录入标准,计算机文字录入员考试大纲标准.doc
  17. 曾经社交王者人人为何如今失魂落魄
  18. 深度学习模型试跑(十三):stylegan3
  19. break和continue用法详解
  20. 计算机网络知识之URL、IP、子网掩码、端口号

热门文章

  1. 记录收支明细,如何将先前给明细标记好的颜色去除掉
  2. 德国应用计算机科学,2021德国计算机科学与技术专业大学排名TOP10
  3. IE浏览器IE8 IE9 IE10完美体验
  4. 路由传递params参数(vue)
  5. Java 吸血鬼数字
  6. 东南大学计算机学院硕导姜浩,东南大学计算机科学与工程学院硕导介绍:曹玖新...
  7. 常用的Web前端技术有哪些?如何快速掌握?
  8. 常见的数据库故障有哪些?
  9. 小丸工具箱-小丸工具箱中文版下载
  10. 高通开发系列 - System之分区调整增删快速格式化和挂载等