我想创建一个可以用键盘控制的箭头! xz-plain上的旋转效果很好,但我不能让它按自己的z轴旋转。
所以我不想使用系统轴,我想要一个与箭头相对的轴!
from visual import *
from threading import Thread
class Pfeil(frame, Thread):
"modelliert einen Pfeil"
def __init__(self, pos=(0,0,0), axis=(1,0,0)):
frame.__init__(self, pos=pos, axis=axis)
Thread.__init__(self)
selfpointer = arrow(frame=self, pos=(0,2,1), axis=(5,0,0), shaftwidth=1)
def tasten(self):
"Methode"
if scene.kb.keys:
taste=scene.kb.getkey()
if taste=='left':
self.rotate(angle=radians(5), axis=(0,1,0), origin=self.pos)
print(self.axis)
if taste=='right':
self.rotate(angle=radians(-5), axis=(0,1,0), origin=self.pos)
print(self.axis)
if taste=='up':
self.rotate(angle=radians(5), axis=(0,0,1), origin=self.pos)
print(self.axis)
def run(self):
while True:
self.tasten()
很抱歉我的代码粘贴在这里太笨了,所以这是一个上传... Upload
感谢您的帮助,如果您不理解我的问题,请发表评论!
答案 0 :(得分:2)
你只是无序地进行转换。
您想要进行“本地”转换,这非常简单。将箭头移回原点,绕z轴旋转,然后将其移回原位。
如果你为箭头保留一个局部坐标系,这样做会更容易,但这对你来说可能是过度的。