MickD 发表于 2006-9-6 01:06:04

不错。
围绕向量旋转的最简单方法是移动ucs,使向量成为z轴(旋转轴),只要x和y仍然是正交的,就不管x和y指向哪个方向,因为你只是围绕z轴旋转给定的量。

Bryco 发表于 2006-9-10 13:13:37

要使用这个矩阵,我仍然需要找到一些神奇的数字。
我认为它与acad help
中提到的3d视图的中心有关。

Bryco 发表于 2006-9-10 16:18:23

这是一个我感到困惑的例子
运行此子命令,然后运行3dorbit命令
目标是找到3dorbit的中心,
这在一段时间内效果很好
Sub OrbitCenter()
    Dim C, T, O, P As AcadPoint
    Dim Util As AcadUtility
   
    Set Util = ThisDrawing.Utility
    ThisDrawing.SetVariable "PDSIZE", 0.5
    ThisDrawing.SetVariable "PDMODE", 35
    C = ThisDrawing.GetVariable("viewctr")
    C = Util.TranslateCoordinates(C, acUCS, acWorld, 0)
   
    T = ThisDrawing.GetVariable("target")
    T = Util.TranslateCoordinates(T, acUCS, acWorld, 0)
   
    Set P = ThisDrawing.ModelSpace.AddPoint(C)
    P.color = acGreen
    Set P = ThisDrawing.ModelSpace.AddPoint(T)
    Dim dMid(2) As Double
    dMid(0) = (C(0) + T(0)) / 2
    dMid(1) = (C(1) + T(1)) / 2
    dMid(2) = (C(2) + T(2)) / 2
   
    Set P = ThisDrawing.ModelSpace.AddPoint(dMid)
    P.color = acYellow
    ThisDrawing.ModelSpace.AddLine C, T
End Sub
在新图形中,目标getvar为0,0,0
类型摄像机和
命令:ca摄像机指定新摄像机位置

指定新摄像机目标
:再生模型
因为我在一个英寸的dwg中,x和y值是极限的中心(12,9)(我假设实际数字随分辨率而变化)
新的目标值似乎从旧的z值开始,以屏幕中心x和y为中心。
但18.3799从何而来

MickD 发表于 2006-9-10 18:23:38

是的,这很难。当使用内部函数进行放大、缩小和平移时,视图目标可能会发生变换,因此实际上,除非您要求或将其交给函数(可能是将其作为几何体边界框的中心),否则您永远不会知道目标将在何处。请注意,在使用鼠标滚轮缩放和移动鼠标时,它也会平移,从而有效地移动目标

Bryco 发表于 2006-9-10 18:56:23

我一直在相机命令中寻找目标的关系...
在vba中没有相机,但有一个目标不使用平移或缩放更新。
相机命令中的目标确实更新了,如您所知。
到目前为止,z值似乎是视图大小的0.52855倍,我还没有将其与扭曲的视图联系起来。
页: 1 [2]
查看完整版本: acDisplayDCS矩阵