posts - 45,  comments - 35,  trackbacks - 0

GDI+不支持异或绘图,而使用双缓存方式,避免了图形闪烁,但是速度稍慢,占用内存较多。随着硬件发展,这是一个图形编辑器的趋势;

用 GDI+ 开发矢量图形编辑系统的经验之谈
性能篇
“经过无数次的实验,终于形成了自己的代码风格”:声明两个Bitmap对象,一个用于即时的图形绘制,另一个用于存放已有的图形。在用鼠标绘图的过程中,直接把Bitmap复制到绘图窗口所对应的Graphics上,以提升绘图的速度;
避免用三角函数、平方根、除法;
避免大量使用Structure;
不同的图元有不同的图像拾取算法,一般常用的矢量计算方法可以保证较高的算法效率;

项目的对象建模
要考虑几个方面:确定图元、图元参数的保存和处理、坐标系、图像时拾取。
操作图元参数时,直接把像素值保存在图元参数中比较方便。因为Single类型的“数据还原性”很差,而图形经过旋转、缩放、坐标系变换后,必须用double类型处理,所以可以考虑把所有图元参数全部用double类型处理,损失一些性能但换来了易用性。

http://www.cnblogs.com/bluntsword/archive/2005/08/10/211363.html也提到了GDI+采用float类型带来的精度问题。另外此文提出要解决精度的问题,需要避免使用坐标变换。整个绘制过程中保持
“世界坐标系”和设备坐标系统一,然后自己记录实际坐标与设备坐标的缩放和偏移,然后在绘制时将实际坐标转换为设备坐标。

“自己进行坐标转换也不难,简单的仿射变换”

READ:《GDI+的雷区 》
http://blog.csdn.net/Nightmare/archive/2005/04/22/359092.aspx

GDI+变换之后的坐标被限制在以下范围
x -4194304.0f
y -4194304.0f
width 8388608.0f
height 8388608.0f
如果超出范围,图形画不出,

INST:了解GDI+ 2.0所作的改进
INST:了解“放射变换”作坐标变换

yicone
-The future is worth fighting for.
posted on 2008-06-19 19:54 yicone 阅读(64) 评论(2)  编辑 收藏 所属分类: Windows, SDK, WinFx

FeedBack:
2008-06-19 22:42 | rddhome [未注册用户]
我们也要开始做fyireporting了。以后还要向博主多多请教。
你的fyireport项目后来进展的怎么样了?
现在fyireporting已经到了3.00了,我需要一份操作手册,先把他用起来,然后再去改进他,是否可行?
  回复  引用    
#2楼 [楼主]
2008-06-22 13:29 | yicone      
@rddhome
呵呵,离开当年做那个项目的公司很久了,只知道他们后来还做了一段时间,现在发展到什么程度,我也不确定。:)
改进它应该是可行的,先搞清项目各部分的关系,选择自己需要的部分进行修改就行,祝你好运:)

  回复  引用  查看    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
博客园首页

新闻频道

社区

小组

博问

网摘

闪存

  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
成果网帮您增加网站收入


相关链接:

 


<2008年6月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

与我联系

搜索

 

常用链接

留言簿

我管理的小组

随笔分类(55)

随笔档案(45)

积分与排名

  • 积分 - 17847
  • 排名 - 2155

最新评论

阅读排行榜

评论排行榜