功能:
三角形、椭圆、矩形和多边形以及曲线类,能实现矢量图形的缩放、平
移等操作、能读入、保存矢量图形数据。
说明:
为了使矢量图形的生成尽可能符合直觉,在敲定交互方式时使用了键鼠结
合的交互方式,所有参数(除了位置)都通过鼠标的交互完成,减少操作难
度。其中,为了保证操作的可靠性和功能完整,使用了 22 个键盘快捷键和 1 个鼠标交互快捷键,这些将在下文具体介绍。
最重要的图形绘制设计为键鼠交互式,按下对应按键在屏幕中心生成图形,
“1”对应为三角形,“2”矩形,“3”椭圆,“4”多边形,“5”曲线,“6”
圆,这部分绘制在函数 void display()中完成。生成后,图形将跟随光标位置
发生变化,通过键盘的上下左右特殊按键可以移动正在绘制的图形,在代码
中图形移动受参数 sx,sy 控制,上下左右通过修改这个参数移动图形,幅
度为 5,实时读取光标的位置参数 mmx,mmy 作为组成新的图形的一部
分。图形的颜色是 sRGB 型的,在绘制时,“r”键增加图形的 red 值,“g”
增加 green 值,“b”增加 blue 值,增减幅度为 20,三值在超过 255 时将越
过 0,这使得颜色系统不会溢出。右键将保存当前图形的参数通过函数 void
addShapes(const char *filename,char *ch)存储到向量中,其中光标的位置由
mpx,mpy 记录按