一、开发环境说明

  • 操作系统:windows
  • 开发软件:Visual Studio 2017
  • 编程语言:基于控制台下的opengl
  • 用到的库: glut

opengl环境配置可参照上一篇博客:控制台+OPENGL配置说明[GLUT篇]

二、内容说明

1、 功能介绍
  • 可以绘图直线、三角形、四边形、圆形、椭圆、平行四边形、六边形
  • 可以选择绘制颜色
  • 可以选择线条粗细
  • 绘制的图形能导出文件,也能加载文件;
  • 可以清空画布
2、操作说明
  • 鼠标左键按下:绘制图形
  • 鼠标右键点击:弹出菜单选择功能
3、程序目录截图

4、程序部分代码展示
void itDisplay()
{glClear(GL_COLOR_BUFFER_BIT);            //清屏for(int i=0; i<=count1-1; i=i+2){//绘制线drawThread(point1[i].x,point1[i].y,point1[i+1].x,point1[i+1].y,point1[i].cx,point1[i].cy,point1[i].cz, point1[i].pointsize, point1[i].model);}for(int i=0; i+2<=count2; i=i+3){//绘制三角形drawTriangle(point2[i].x,point2[i].y,point2[i+1].x,point2[i+1].y,point2[i+2].x,point2[i+2].y,point2[i].cx,point2[i].cy,point2[i].cz, point2[i].pointsize, point2[i].model);}if((count2+1)%3==2){drawThread(point2[count2-1].x,point2[count2-1].y,point2[count2].x,point2[count2].y,point2[count2-1].cx,point2[count2-1].cy,point2[count2-1].cz, point2[count2 - 1].pointsize, point2[count2 - 1].model);}for(int i=0; i<=count3-1; i=i+2){//绘制四编写drawRectangle(point3[i].x,point3[i].y,point3[i+1].x,point3[i+1].y,point3[i].cx,point3[i].cy,point3[i].cz, point3[i].pointsize, point3[i].model);}for(int i=0; i<=count4-1; i=i+2){//绘制圆drawCircle(point4[i].x,point4[i].y,point4[i+1].x,point4[i+1].y,point4[i].cx,point4[i].cy,point4[i].cz, point4[i].pointsize, point4[i].model);}for (int i = 0; i <= count5 - 1; i = i + 2){//绘制平行四边形drawRectangleParral(point5[i].x, point5[i].y, point5[i + 1].x, point5[i + 1].y, point5[i].cx, point5[i].cy, point5[i].cz, point5[i].pointsize, point5[i].model);}for (int i = 0; i <= count6 - 1; i = i + 2){//绘制6边形DrawSixBianXing(point6[i].x, point6[i].y, point6[i + 1].x, point6[i + 1].y, point6[i].cx, point6[i].cy, point6[i].cz, point6[i].pointsize, point6[i].model);}for (int i = 0; i <= count7 - 1; i = i + 2){DrawSiBianxing(point7[i].x, point7[i].y, point7[i + 1].x, point7[i + 1].y, point7[i].cx, point7[i].cy, point7[i].cz, point7[i].pointsize, point7[i].model);}glFlush();       //送所有输出到显示设备//glutPostRedisplay();
}
5、 运行效果展示


三、测试用例及代码下载

  • 测试文件下载:双击exe文件可以直接运行
  • 整个工程代码下载

基于opengl编写简单的二维绘图软件相关推荐

  1. 基于Capacitor编写Ionic React二维码扫描应用

    在上一篇文章中,我们简要演示了如何使用capacitor-plugin-dynamsoft-barcode-reader构建跨平台二维码扫描应用.在本文中,我们将使用Ionic React来构建一个二 ...

  2. Grapher是二维绘图软件,主要用于绘制剖面图、直方图、曲线图等

    可视化数据 以最佳状态呈现您的数据.Grapher 提供高质量的绘图工具,因此您可以充分利用数据.Grapher 提供超过 80 种不同的 2D 和 3D 图形选项,以适应从地质和水文到环境工作和建筑 ...

  3. 有限元方法入门:有限元方法简单的二维算例(三角形剖分)

    有限元方法简单的二维算例(三角形剖分) 文章目录 有限元方法简单的二维算例(三角形剖分) 算例描述 变分问题 有限元离散 问题转化 有限元三要素 参考单元与一般单元 一般单元上的形函数 一般单元上的积 ...

  4. 有限元方法入门:有限元方法简单的二维算例(矩形剖分)

    #有限元方法简单的二维算例(矩形剖分) 算例描述 我们对下述椭圆边值问题 \label{eq1}{−Δu=fu∣∂Ω=0\left \{ \begin{aligned} & -\Delta u ...

  5. Agg vs. Cairo 二维绘图引擎之比较和选择

    转帖自: http://blog.csdn.net/cheungmine/article/details/5927909 当今时代对于作为二维图形软件开发者, 是幸运的.因为除了Windows GDI ...

  6. autocad2007二维图画法_cad怎样绘制简单的二维图形

    CAD绘制二维图形非常的简单,大家经常用它来画图,下面是学习啦小编带来关于cad怎样绘制简单的二维图形的内容,希望可以让大家有所收获! cad绘制简单二维图形的方法 1.绘图菜单绘图菜单是绘制图形最基 ...

  7. 【MATLAB】二维绘图 ( 绘制二维图像 | 设置图像样式 )

    文章目录 一.绘制二维图像 1.二维绘图步骤 2.二维绘图步修饰 3.代码示例 二.设置图像参数 1.图像参数 2.代码示例 一.绘制二维图像 1.二维绘图步骤 绘图前需要给定 xxx 轴 , yyy ...

  8. 基于jquery类库的绘制二维码的插件jquery.qrcode.js

     jquery.qrcode.min.js 如下 (function(r){r.fn.qrcode=function(h){var s;function u(a){this.mode=s;this.d ...

  9. MATLAB二维绘图(二)向图中添加标题,坐标轴,图标和文字信息

    MATLAB二维绘图(二)向图中添加标题,坐标轴,图标和文字信息 1.添加标题.图例.x轴信息和y轴信息,示例: %% 添加标题 clear; clc; close all; x = 0:0.1:2* ...

  10. python识别ppt文件格式 ——(专栏:基于python编写简单office阅卷程序③)

    ● 研二在读学生,非工科非计算机专业,故代码简陋初级勿喷,本文仅为记录和快乐分享. ○ 感谢肯定,感谢点赞收藏分享,转载请注明本页出处即可. ____Ⓙ即刻@王昭没有君 本文仅为笔者摸索总结-欢迎订正 ...

最新文章

  1. 编译器架构Compiler Architecture(下)
  2. java按行读取txt文件内容_对txt文件中的内容进行排序
  3. Chromium:安装depot_tools及获取Chromium源代码
  4. 【技术综述】人脸年龄估计研究现状
  5. python 批量创建变量_Python批量生成和调用变量
  6. sudo修改文件夹名字_修改mac os帐户的短名称和个人文件夹
  7. SAPGUI系统登录页面配置的SAProuter有什么用 1
  8. .mmp怎么打开查看?
  9. 本地运行vue.js项目,如何更改调试的默认端口?
  10. 讨物联网的隐私解决方案_2017年数据隐私日:日常隐私解决方案
  11. vb.net 同时给多个属性赋值_系统小技巧:充分用好文件的时间属性
  12. java 不生成文件下载_java 下载文件时怎么避免在服务器上生成文件
  13. 1、深入理解 Laravel Eloquent(一)——基本概念及用法
  14. 反编译获取线上任何微信小程序源码(转)
  15. Visio 不能使用方向键移动图形的解决办法
  16. JS中图片缓冲loading技术的实例代码
  17. 网际风全推数据接口_网际风千钧版 飞狐配套全推接口最新版(2013年5月10更新)...
  18. MPEG-2 数字视频技术参考指南 (7)—— ATSC数字电视标准
  19. 必应搜索结果跳转百度
  20. 【基础篇】SpringBoot 自定义 Banner

热门文章

  1. 信息差赚钱2020年怎么做?看完全部就会了!
  2. 【华人学者风采】李进 广州大学
  3. ipv4v6双栈技术_什么是IPv6双栈技术
  4. 结构光三维重建阶段性总结
  5. 计算机上怎么在表格输入分秒,“excel表格怎么输入角度“excel 表格中怎么输入分秒的符号...
  6. onenote登录显示服务器问题,onenote启动不了怎么回事 onenote为什么登录显示无法连接...
  7. 三阶魔方中心块调整公式及助记方法
  8. 微信音频silk导出多个mp3,合并成一个mp3,压缩大小
  9. R语言-处理缺失值的方法
  10. C++多线程03 Lambda表达式与caII once