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

不错
围绕矢量旋转的最简单方法是移动ucs,使矢量为z轴(旋转轴),它不'不管x和y指向哪个方向,只要它们#039;re仍然是正交的,因为您仅围绕z轴旋转给定量。

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

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

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

这是一个混淆I#039;我有
运行此子命令,然后运行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摄像机指定新摄像机位置<6.0000,4.8571,18.3799>:&nbsp
指定新的摄像机目标(<6.0000,4.8571,0.0000>: 再生模型
自I'm在英寸dwg中,x和y值是;极限(12,9)(我假设实际数随分辨率而变化)
新的目标值似乎从旧的z值开始,并取屏幕中心x和y。但是18.3799来自哪里

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

是的,那'这很难。当使用内部函数进行放大、缩小和平移时,视图目标可能会发生变换,因此实际上,除非您要求或将其交给您的函数(可能通过将其作为几何体的边界框的中心),否则您永远不会知道目标将在何处。请注意,在使用鼠标滚轮缩放和移动鼠标时,它也会平移,从而有效地移动目标
也就是说,我认为目标会随着相机移动,除非你在缩放,然后将目标移开;这是一个棘手的问题,没有看到它如何滴答作响。也许值得一看,看看这是不是真的发生了什么

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

本人'我一直在寻找p>

MickD 发表于 2006-9-10 20:23:17

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