注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

MicroDraw CAD/CAM中间件

产品主页 http://www.microdraw.com

 
 
 

日志

 
 

如何进行坐标变换,比如图纸变换到屏幕??  

2014-04-14 23:03:07|  分类: MicroDrawSDK |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
如何进行坐标变换,比如图纸变换到屏幕??
MicroDraw  SDK初始化后即计算出当前图纸到屏幕的矩阵变换(As_Tran),这个变换在对象MB_Draw_Render内;即m_drawing_to_screen;

当窗口尺寸发生改变、鼠标平移(PAN)等操作时; 这个变换(m_drawing_to_screen)都会进行相应的改变;

绘图过程(将可视对象画到屏幕上)每个元素的几何点都需要乘以这个变换;变换后的点就是屏幕上的点;

比如直线 MB_Line *  aline 两端点坐标为  As_Pt  p0(10.0,10.0,0)  As_Pt p1(30.0,40.0,0);

As_Pt scr0 = p0* op->drawing_to_screen();
As_Pt scr1 = p1* op->drawing_to_screen();

POINT _scr0, _scr1;
_scr0.X = (int)(scr0.x());
_scr0.Y = (int)(scr0.y());
_scr1.X = (int)(scr1.x());
_scr1.Y = (int)(scr1.y());

_scr0  _scr1 仅是p0, p1在屏幕上实际的点位置(显示); 可以用As_Qdc的line函数来绘制直线 draw_line(_scr0,_scr1);
也可以用WIN GDI或者GDI+的绘制函数来绘制;

比如GDI画线:  ::MoveToEx(dc,_scr0,,);    :ineTo(dc,_scr1);
  评论这张
 
阅读(30)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018