[Pythhon] 두 각도와 거리에 따라 좌표를 구한다.

5311 단어 PythonMotionbuilder

개요


친자 관계의 대상 중
부모 객체가 회전하는 동안 자식 객체가 이동하는 방법 등을 사용할 수 있습니다.

참조 코드


운영 환경: Motionbuilder 2015
MB로 널로 공 처리를 해보세요.
본 문제의 처리는 getPosition() 내용에만 한정된다.
※ MB를 모르는 사람에게FB○○는 MB 전용입니다.
자신이 사용하고 싶은 소프트웨어와 언어에 따라 변경하세요.
# -*- coding: utf-8 -*-

from pyfbsdk import *
import math

# 角度2つと距離から座標を求めるメソッド
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);

# このfor内を使いたいソフト用に変更してあげれば何でも球体を描いてくれる
## angle1,angle2 に入る値を調整すれば半円を描いたりもできる
## rangeの第3引数のstepを1(もしくは指定なし)で実行すると重たいので注意
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)
실행하면 이런 느낌이 든다.
(이것은 1로 만든 range()의 step!)

좋은 웹페이지 즐겨찾기