首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MicroStation的VBA -定义一个角度的位置

MicroStation的VBA -定义一个角度的位置
EN

Stack Overflow用户
提问于 2015-07-29 14:18:34
回答 1查看 917关注 0票数 0

这更像是一个数学难题,而不是具体的编码,但我相信我也需要帮助。

我正在编写一些代码,将MicroStation单元格放置在选定的比例上,然后使用MicroStation命令将部分单元格拉伸到另一个位置。代码已经完成了,我想,因为它在我的测试环境中工作,但是在与一些用户的测试中,它立即崩溃了。这需要一些时间来确定原因,这是由屏幕上的视图有旋转应用造成的。

我的代码依赖于捕获使用point3d检索的单元格位置开始时的用户放置位置,然后我需要从最后一点沿XY在一个设定的距离上选择另一个点,这是通过考虑所选的比例"CellScale作为整数“来调整的,因此我的第二个位置被定义为:

代码语言:javascript
复制
PosFlood.X=Pos1.X + (0.35 * CellScale)
PosFlood.Y=Pos1.Y + (0.007 * CellScale)

但是当视图旋转时,这种计算是错误的。我已经能够恢复旋转角度,并将其设置为"ViewAngle as Double“,但我不知道用什么公式来计算我的第二个位置,我相信我需要使用sin和cos,但是所有搜索都使我感到不足。

希望网络空间里有一个数学巫师,谁能让我走上正确的道路?

谢谢-马克

EN

回答 1

Stack Overflow用户

发布于 2016-02-26 15:56:23

MicroStation是三维的,使用角度不是处理旋转的好方法。3D数学中的一种常见方法是使用旋转矩阵,这是由MicroStation VBA和Matrix3D类完全支持的。

您可以使用MicroStation获得View.Rotation视图的旋转矩阵。您将在Matrix3D VBA帮助中找到许多在MicroStation上操作的方法。这些方法包括计算缩放矩阵和乘矩阵(例如scaling matrix . rotation matrix)以获得单元的旋转。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31703167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档