In einem Objekt mit einer Eltern-Kind-Beziehung Es kann verwendet werden, wenn sich das untergeordnete Objekt bewegt, wenn sich das übergeordnete Objekt dreht.
Ausführungsumgebung: Motionbuilder 2015
Ich habe einen Prozess gemacht, um eine Kugel mit Null in MB zu zeichnen.
Die Hauptverarbeitung ist nur der Inhalt von getPosition ()
.
FB ○○
ist nur für MB.
Bitte wechseln Sie zu der Software und Sprache, die Sie verwenden möchten.# -*- coding: utf-8 -*-
from pyfbsdk import *
import math
#Methode zum Finden von Koordinaten aus zwei Winkeln und Entfernungen
def getPosition(_angle1, _angle2, _radius):
x = _radius * math.sin(math.radians(_angle1)) * math.cos(math.radians(_angle2));
y = _radius * math.sin(math.radians(_angle1)) * math.sin(math.radians(_angle2));
z = _radius * math.cos(math.radians(_angle1));
return FBVector3d(x, y, z);
#Wenn Sie dies für Software für die Software ändern, die Sie verwenden möchten, wird eine Kugel gezeichnet.
## angle1,Sie können auch einen Halbkreis zeichnen, indem Sie den Wert für angle2 anpassen
##Beachten Sie, dass das Ausführen des Schritts des dritten Bereichsarguments mit 1 (oder nicht angegeben) schwer ist.
parentPos = FBVector3d(50, 50, 50)
for angle1 in range(0, 360, 3):
for angle2 in range(0, 180, 3):
mdlNull = FBModelNull("Null_{0}_{1}".format(str(angle1), str(angle2)))
mdlNull.Show = True
mdlNull.Scaling = FBVector3d(1, 1, 1)
mdlNull.Translation = parentPos + getPosition(angle1, angle2, 100.0)
Wenn Sie es ausführen, erhalten Sie so etwas. (Dies machte den Schritt von range () in 1!)
Recommended Posts