QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 2961|回复: 6
收起左侧

[已答复] 关于图形三维显示的问题~~

[复制链接]
发表于 2009-2-5 15:06:26 | 显示全部楼层 |阅读模式 来自: 中国福建福州

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

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

x
我的画的图是由直线构成的。。。" Z. W2 B6 J( q
/ s, l6 g% c: q
运行以后,都要转换视角,才能看的出是三维的。。
/ I# H0 ?" E! Q+ l" X& c# f9 j* A0 b2 P, i0 S( Y* a
请问如何在程序中实现一出图就是三维的。。。或者转换一下视角?
6 m$ {8 C. ^1 P/ H0 C" @2 i( ~' K2 ]$ v5 I; j5 _# z/ O/ |# ~* B
大概就是从我附件的图一。。变为图二。。。; m* Z& e, X" S4 R
3 k/ @( ?2 ?0 l1 j
[ 本帖最后由 jjww123 于 2009-2-5 15:08 编辑 ]
图1.jpg
图2.jpg
发表于 2009-2-5 16:21:05 | 显示全部楼层 来自: 中国辽宁营口
这需要使用命名视图,参见下面代码: S: h* v$ E! i5 F3 a: ]/ R

  1. 0 ]( ]; z7 f: O- C) k
  2. Sub A()7 {% \& f6 ^* A+ z+ j4 X1 ^
  3.     Dim V As AcadView, D(2) As Double
    : L& a; T9 p9 B) L; V: d, i$ Z
  4.     With ThisDrawing
    7 }( k% z. J4 \" N6 \$ z2 t
  5.         '新建视图
    ) e5 `# Y2 \0 V+ Y( D
  6.         Set V = .Views.Add("AAA")
      Y7 C: T+ g. ?# @) W
  7.         '设置新视图的方向* q" E8 r% w& f; v4 e
  8.         D(0) = -1: D(1) = -1: D(2) = 1
    ' g( ^4 r- R; M$ i; t0 y/ N
  9.         V.Direction = D
    2 k/ v  S# ?, {
  10.         '活动视口设置为该视图% R$ Z7 R2 G: K0 j2 \! q$ \
  11.         .ActiveViewport.SetView V9 H7 r% |+ H1 W8 G+ `
  12.         '重置活动视口
    1 @$ N' E! U& l3 E/ \8 U
  13.         .ActiveViewport = .ActiveViewport
    , E2 a4 G; g) Q5 n; v, Q
  14.     End With  p" h# g8 j6 F% g, o# T
  15.     '缩放视图7 _, _1 @/ s. r2 K* U* Y9 \5 D
  16.     ZoomAll/ t* e% u, ?& z% k
  17. End Sub
    5 {3 ?! [) M8 i( i- `
  18. * o9 G! P) t/ d! p% E5 p3 R; R
复制代码
 楼主| 发表于 2009-2-5 17:17:39 | 显示全部楼层 来自: 中国福建福州
我把。。
! w& r* A1 _4 g& {( r3 S
! v) i) u+ {! S# D) v'设置新视图的方向; a+ y! s/ `0 g$ A/ V
        D(0) = -0.1: D(1) = -0.5: D(2) = 12 J9 z8 n( l- A4 L3 p% F
        
. I1 l* S: U; ]" h* o5 U        V.Direction = D
. M7 O6 v9 C! g9 a! @! ?0 @3 r' D# X! x8 H4 b
请问如何在这个基础上填充我上面的那个椅子面?而视角不变?
9 u2 N; f' \2 i; X" ^
) Y  ~2 O: S; E7 p, p如何设置UCS?
 楼主| 发表于 2009-2-6 16:41:55 | 显示全部楼层 来自: 中国福建福州
still waiting~~~
发表于 2009-2-6 16:45:02 | 显示全部楼层 来自: 中国辽宁营口
“UCS”和“视图”是两个不同的概念,它们没有必然的联系。
9 c6 k& r3 q6 x& m8 ~' e/ DUCS是用来描述对象空间位置的坐标系,而视图是我们从哪个角度去观察。, u0 l' W, J: B
创建二维填充对象只能在当前UCS的XY平面上,这与我们从哪个角度观察它无关。4 A1 N5 |  Z. `7 ~
但想在二维线框模式下看到二维填充效果就与视图(观察角度)有关了。我在关于二维填充的帖子上说过,只有在正对着二维填充的平面时才能看到填充效果。) i! n) R) T  J, L! t) l% k
在两个主题帖上,我分别使用了两种改变视图的方法,在二维填充的帖子上的方法是通过发送键盘命令,调用CAD的PLAN命令的方法使视图与当前UCS(也就是二维填充对象的对象坐标系OCS)对正,目的是为了能在二维线框模式下能看到二维填充效果。在这个主题帖的2楼,我用的是“方向”的方法,D(0) = -1: D(1) = -1: D(2) = 1的意思是我站在世界坐标系(-1,-1,1)的位置向坐标原点方向看,相当于CAD预置的西南等轴测视图,目的是为了看到椅子的三维形状。
$ y8 [: R4 N1 `, M. o- ^这两个方法都是在改变观察角度,并不改变用户坐标系UCS。同样的道理,改变了UCS,也并不意味着改变观察方向。
3 U1 h) X' M( e+ p3 P; S为了创建二维填充,我们要改变UCS。为了看到画图的效果,我们改变“视图”。1 @( H& O, C# x! c! X7 v7 S
但对于你的这个图来说,在二维线框模式下想同时看到椅子面的填充效果和椅子的三维形状是不可能的。如果想看到椅子面的填充效果,就只能从椅子的上方正直地向下看或是从椅子下方正直地向上看,但这样就看不到椅子的三维形状了。如果想看到椅子的三维形状就要从与坐标轴成角度的方向去观察,就无法正对着椅子面。所以只能在着色模式下或真实、概念等模式下看效果。

评分

参与人数 1三维币 +8 收起 理由
★新手★ + 8 应助

查看全部评分

 楼主| 发表于 2009-2-7 13:29:02 | 显示全部楼层 来自: 中国福建福州
我问的问题都是比较简单的,麻烦楼主扫盲了。。。- M$ z: X+ |1 D; @5 }6 X

5 L: F( v4 J! k, E; i7 z[ 本帖最后由 jjww123 于 2009-2-7 19:23 编辑 ]
 楼主| 发表于 2009-2-7 14:02:10 | 显示全部楼层 来自: 中国福建福州
差不多能画简单的了~~
$ G) ^% Y( ^; O4 s$ n* a3 e5 [
* Y8 r9 p" m  e8 I" L( V- f  E7 N9 C- Z
谢谢版主
# Y3 ]% d% M8 m5 G) V: y; C
: t* q. i" P& h( {4 r9 X4 J2 r[ 本帖最后由 jjww123 于 2009-2-7 19:22 编辑 ]
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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