Skip to content

noodlesby11/Simple-Interactive-drawing-system-based-on-openGL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

简易openGL交互式绘图系统

介绍

一个简易的openGL交互式绘图系统,实现了绘图的基本功能,可以绘制简易的图形。

菜单功能

  • 空心图形的绘制
  1. 线
  2. 矩形
  3. 三角形
  4. 圆形
  5. 其他多边形
  6. 曲线
  • 颜色
  1. 绿
  • 画笔大小
  1. 小(2)
  2. 中(6)
  3. 大(10)
  • 变换
  1. 平移变换
  2. 旋转变换(旋转中心为画面右下角)
  3. 缩放变换
  • 裁剪

  • 清屏

  • 退出

  • 填充颜色(并没有做)

键鼠控制

  • 三角形在确定完第一个顶点后按下中键再确定第二个顶点,点击后拖动绘制三角形。
  • 绘制多边形和曲线时,当需要确定图形已经绘制完成不需要增加新的控制点,可以按下空格进行确定。
  • 为了防止开启或者切换菜单的误触键盘的F1键可以开启或者关闭锁定,锁定状态下不能进行任何交互。
  • 使用裁剪时,先将鼠标从欲裁剪区域左上拖动至欲裁剪区域右下,后按下f进行裁剪,随后即可随意裁剪。
  • q键切换至平移变换,上下左右键控制;w键切换至旋转变换,上下键进行控制;e键切换至缩放变换,上下键进行控制。

文件介绍

==可在头文件function.h中查看所有函数以及全局变量==

  • main.cpp 主函数与初始化函数以及相关全局变量.
  • display.cpp 所有绘制图形的函数以及所有图形的存储结构的定义.
  • Menu.cpp 建立菜单与设置部分简单菜单功能,可以自行添加更多的菜单项,例如更多的颜色和更细致的画笔大小.
  • Mouse.cpp 所有控制所有图形绘制时的鼠标交互.
  • MouseMove.cpp 部分需要拖动绘制的图形的鼠标拖动交互函数.
  • KeyBorad.cpp 所有键盘控制函数,包括普通按键与特殊按键,可以根据ASCII码表自行修改.
  • LinearScanConversion.cpp 所有线性扫描函数,包括直线的扫描转换,圆的扫描转换,尽管并未全部使用.
  • BezierCurve.cpp 贝塞尔曲线的扫描转换,系统中曲线均为贝塞尔曲线.

About

基于openGL的简易交互式画图系统

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages