C#如何将图形作为对象
.net 2008 C# winform中,想自己绘图(例如:画一个圆),然后将图形当作对象,选中时边框加选中符号,有“双击”、“右键”等事件,如何实现?谢谢! --------------------编程问答-------------------- 自己顶一下 --------------------编程问答-------------------- 倒过来思考:)我们设计一些对象,这些对象有绘图,可选中... --------------------编程问答-------------------- 楼主,不要把问题复杂化,用pictureBox控件完全满足你的需要,使用有非常简单。。。 --------------------编程问答-------------------- image也是可以的。 --------------------编程问答--------------------
直接用就好了 --------------------编程问答-------------------- 谢谢各位,我要做的程序,winform上有大量的图形对象(几万个),这些图形对象中绝大多数都是"方框",这些方框,除了颜色和位置不同,其他属性都相同,可是数量太多,速度很慢,甚至出错,想自己画图,但是又不能当作对象来操作,是不是用克隆对象的方法可以减少内存占用? --------------------编程问答-------------------- 你说的是图形系统方面的知识,需要专门建立一套这样的系统,才能达到你的目标。。。 --------------------编程问答-------------------- "winform上有大量的图形对象(几万个)"
同时显示?不太可能吧
--------------------编程问答-------------------- “图形对象”而不“图象对象”,完全是有可能的,矢量图形系统大都可以画很大的图形,比如:autocad,
电力专业图形系统,一个配网图,可能有上十万的图元对象。。。。 --------------------编程问答-------------------- 如果自己画整个图像的话。可以扑捉整个画布的事件,然后判断鼠标的落点
比如你画一个圆,那么在鼠标点击画布的时候,判断落点是不是在圆周上(该点距离圆心的距离是不是等于半径)
如果条件成立,则调用对应的方法(比如画一段文本注释)。
绘图时托管出来的方法,在你使用这个控件的时候,其实就是一个事件了。只是他的原理是由画布的事件触发的。 --------------------编程问答--------------------
我要做的就类似于autocad,请问如何实现? --------------------编程问答-------------------- 这个可是一言难尽啊,而且过程比较复杂,涉及很多环节,大都需要一个团队来完成(3~5人),如果没有经验的人来带头搞,很难成功的。。。
说说其中几个主要环节:
1、矢量图元对象设计
2、文档对象设计
3、画布对象设计
4、鼠标交互事件设计
5、图元缩放设计
6、图元选中、移动、旋转、删除设计
7、图元序列化设计
8、图元连接、属性数据设计
9、图形拓扑分析设计
10、图形撤销/恢复设计
。。。。。。。。。。。
上面都只是基本的,如果还跟应用挂钩,就更复杂了。。。。
--------------------编程问答-------------------- 我是这样想的,如果圆是画在penel里的话,响应penel的click事件,看鼠标坐标是否在圆内,如果是,就在画出选中的图形,抛出圆的选中事件。
--------------------编程问答-------------------- 这是不对的,penel外框是矩形,圆画在里面,还有那么多空隙啊,如何判断它选中呢?
还有,你要画大量图元,这种方法更行不通,控件会占用大量资源,显示、刷新会有成堆的问题,
乘早改变想法吧,你可以搜索矢量图形系统这方面的资料,也可以买书看看。。。
补充:.NET技术 , C#