发帖
 找回密码
 立即注册
搜索
1 0 0

【官网翻译】有没有办法在视图缩放的时候,保持对象的大小固定不变?

信息公告 80 1 2017-11-5 19:53:24
[font=黑体]原帖地址[/font][font=宋体]:[/font][url=https://answers.flexsim.com/questions/44223/is-there-a-way-to-maintain-object-size-regardless.html]https://answers.flexsim.com/questions/44223/is-there-a-way-to-maintain-object-size-regardless.html[/url][font=宋体]原作者:[/font][color=red][url=https://answers.flexsim.com/users/583/enrique.e.html]Enrique Elizaga[/url][/color] [font=宋体]和[/font][url=https://answers.flexsim.com/users/206/phil.b.html]phil.bobo[/url]

[color=red][url=https://answers.flexsim.com/users/583/enrique.e.html]Enrique Elizaga[/url][/color][color=#ff0000]:[/color]
[align=left][color=#000000]你好,[/color][/align][align=left][color=#000000]我想在视图缩放中保持保持一个对象大小(总是2 x 2 x 2)固定。这可能实现吗?[/color][/align][align=left][color=#000000]
[/color][/align][align=left][url=https://answers.flexsim.com/users/206/phil.b.html][color=#ff0000]phil.bobo[/color][/url][color=#ff0000]:[/color][/align][align=left][color=#000000]您可以通过添加以下代码使用自定义绘制触发器来获得此功能:[/color][/align][align=left][align=left]double size = 5.0;[/align][align=left]int shapeIndex =getshapeindex("fs3d\\Processor\\Processor.3ds");[/align][align=left] [/align][align=left]double scaleFactor = size *viewpointradius(view).value / 100.0;[/align][align=left]if (viewprojectiontype(view).value == 1)// orthographic projection[/align][align=left]         scaleFactor= size * 10.0 / viewmagnification(view).value;[/align][align=left]fglScale(scaleFactor, scaleFactor,scaleFactor);[/align][align=left]drawobject(view, shapeIndex, 0);[/align][/align]
[align=left]该示例代码绘制了一个处理器形状。您可以调整getshapeindex()的调用来绘制不同的形状。例如,使用“fs3d \\ General \\ Plane.3ds”绘制一个平面。[/align][align=left]您可以调整大小变量以使其变大或变小。[/align][align=left]附件是一个示例模型,展示了这一点。[/align]
[align=left][color=red][url=https://answers.flexsim.com/users/583/enrique.e.html]Enrique Elizaga[/url][/color][color=#ff0000]:[/color][/align][align=left]它好像将三维物体(球体)的基准点画在实体的中心(比如红色的)。我尝试了中心基准点的选择,但它不会起作用,它总是在一个角上。[/align][align=left][font=Helvetica, sans-serif][url=https://answers.flexsim.com/users/206/phil.b.html][color=#ff0000]phil.bobo[/color][/url][/font][color=#ff0000][font=Helvetica, sans-serif]:[/font][/color][/align][align=left]添加fglTranslate()调用来翻译图形的位置:[/align][align=left][align=left]double size = 5.0;[/align][align=left]int shapeIndex =getshapeindex("fs3d\\General\\Sphere.3ds");[/align][align=left]double scaleFactor =size*viewpointradius(view).value/100.0;[/align][align=left]if (viewprojectiontype(view).value == 1)[/align][align=left]         scaleFactor= size*10.0/viewmagnification(view).value;[/align][align=left]fglTranslate(0.5, 0.5, 0.5);[/align][align=left]fglScale(scaleFactor, scaleFactor, scaleFactor);[/align][align=left]fglTranslate(-0.5, -0.5, -0.5);[/align][align=left]drawobject(view, shapeIndex, 0);[/align]或者在三维建模程序(如AC3D)中修改形状,使形状以原点为中心。一般的球体形状的位置是在它的原点,而不是它的中心。[/align]
──── 0人觉得很赞 ────

本帖子中包含更多资源

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

x
2022-3-4 19:34:41
谢谢
您需要登录后才可以回帖 立即登录
高级模式
返回
信息公告
热门问答
查看更多
1
厂区生产线布局优化案例!新做的!
厂区生产线布局优化案例!新做的!
2675
224
2
FlexSim2016 中国象棋
FlexSim2016 中国象棋
1707
44
3
Flexsim二次开发之塔吊
Flexsim二次开发之塔吊
1586
45
4
关于Processs Flow 使用的两个案例(AGV Elevator案例/子母穿梭
关于Processs Flow 使用的两个案例(AGV Elevator案例/子母穿梭
1479
34
5
快递分拨中心案例~新手可参考
快递分拨中心案例~新手可参考
1189
62
博主榜
+ 45331
+ 10630
+ 7753
4
+ 6759
5
+ 6323
6
+ 6321
7
+ 5341
8
+ 4710
9
+ 3722
10
+ 3628