找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1775|回复: 6

[求助]:关于worldDraw()与viewportDraw()函数的问题。

[复制链接]
发表于 2003-7-5 10:55:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
各位大人能否帮小弟解释一下worldDraw()与viewportDraw()的区别。
帮助只是说一个是视角无关,一个是视角相关,我有点不太清楚。
AcGiWorldGeometry类与AcGiViewportGeometry类都包含了诸如circle,pline等绘图原语函数,他们的区别究竟在哪里呢??
我自定义一个圆柱的实体,那么他的worldDraw()函数以及viewportDraw()函数该如何处理呢??

小弟在此谢谢各位!!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-7-5 14:28:04 | 显示全部楼层

Re: [求助]:关于worldDraw()与viewportDraw()函数的问题。

最初由 HillMan 发布
[B]各位大人能否帮小弟解释一下worldDraw()与viewportDraw()的区别。
帮助只是说一个是视角无关,一个是视角相关,我有点不太清楚。
AcGiWorldGeometry类与AcGiViewportGeometry类都包含了诸如circle,pline等绘?.. [/B]


要想说全我也不太可能。

可以这么理解:

如果实体显示不依赖于“模型空间”和“图纸空间”,那么你要实现worldDraw()来让实体显示自己。并且返回kTrue.

如果实体依赖于视图空间,那么worldDraw()必须返回kFalse,并且必须实现viewportDraw()函数。

具体的你看看ADESK带的自定义实体的例子程序去理解下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-7-5 15:11:11 | 显示全部楼层
谢谢晓东回复.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-7 13:29:23 | 显示全部楼层
我是这么理解worldDraw()和viewportDraw()的.
如果你要画一个长100宽100的矩形可以在worldDraw()中处理,不需要viewportDraw(),但如果你要画一个长和宽始终和屏幕相同的矩形就必须用viewportDraw(),因为AcGiViewportGeometry类中有关于屏幕和象数的信息,而AcGiWorldGeometry没有.但AcGiWorldGeometry可用于在对象保存时处理绘制代理而AcGiViewportGeometry不可以.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-7-7 17:44:10 | 显示全部楼层
今天问了一下朋友,我的理解是这样的:
AcGiGeometry:只是用于对实体的离散,不进行绘制工作,并且保存离散信息在GsNode中。
AcGiWorldGeometry:完成两个工作,1.处理实体的离散工作,保存离散信息;2.处理实体的拖动绘制。
AcGiViewportGeometry:绘制与视角相关的信息,
ownerDrawDc  
  polygonDc  
  polygonEye  
  polylineDc  
  polylineEye  
  rasterImageDc  
这些方法都是按照屏幕坐标进行绘制的。还有就是离散信息不保存在GsNode中。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-7 22:18:13 | 显示全部楼层
越说越迷糊了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-8 00:29:59 | 显示全部楼层
学过摄影的能很好的理解视角, 在Acad中理解视角的最好方式是切换到透视模式

When you use the 3DORBIT command, you can view objects in either parallel projection or perspective view.

While 3DORBIT is active, right-click in the drawing area.
From the shortcut menu, choose either Projection > Parallel, or Projection > Perspective. (A check mark is displayed in front of the mode that is current.)
Note: AutoCAD must be configured for parallel projection (default) to draw or edit objects. Perspective view is for visualization, plotting or file output only. You cannot draw or edit objects when using perspective view.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-21 00:31 , Processed in 0.511322 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表