是否可以在Webots中将地板的原点从中心更改为左上角?例如,矩形竞技场的大小为 20x20,我想将其原点设置为 0,0 到 10,10
1 回答
1
是的,您可以通过创建自己的 proto 文件来做到这一点。我建议您从现有的原型开始,例如WEBOTS_HOME/projects/objects/floors/protos/Floor.proto. 将此文件复制并重命名MyFloor.proto为 example 并对其进行编辑以更改IndexedFaceSet节点的坐标。通常,您必须更换:
geometry IndexedFaceSet {
coord Coordinate {
point [
%{= -(size.x / 2) }% 0 %{= -(size.y / 2) }%
%{= size.x / 2 }% 0 %{= -(size.y / 2) }%
%{= -(size.x / 2) }% 0 %{= size.y / 2 }%
%{= size.x / 2 }% 0 %{= size.y / 2 }%
]
}
经过:
geometry IndexedFaceSet {
coord Coordinate {
point [
0 0 0
%{= size.x }% 0 0
0 0 %{= size.y }%
%{= size.x }% 0 %{= size.y }%
]
}
这将移动地板一角的地板原点。此外,boundingObject 应该更新,以便在选择时地板看起来更好。代替:
boundingObject Plane {
size IS size
}
经过:
boundingObject Transform {
translation %{= size.x / 2 }% 0 %{= size.y / 2 }%
children Plane {
size IS size
}
}
于 2019-05-17T13:11:29.617 回答