gpt4 book ai didi

java - 我需要在 3 维空间中绘制一个简单的动画箭头 vector

转载 作者:行者123 更新时间:2023-11-28 21:28:00 26 4
gpt4 key购买 nike

我正在尝试使用来自 Android 手机传感器的数据显示单个磁场 vector (空间中的点,带有来自原点的箭头)。我用 Python 编写了一个简单的服务器来轮询手机的传感器数据,我想实时绘制接收到的数据。我正在寻找一个简单的解决方案,但找不到。

我查看了 matplotlib、blender 和 visual python,但我找不到一个足够简单的解决方案来简单地获取 3 个坐标和绘图。接收到的数据只是一个包含 3 个点的 vector 。从原点开始的箭头并不是那么重要,我只想能够在 3d 空间中可视化移动点。

此外,如果有必要,我可以用 Java 重写服务器并使用 Java 绘图库。我只需要一些建议和实现此目的的简短代码示例。

最佳答案

您可以很容易地通过 VPython 绘制场景:

from visual import *
import math

def make_grid(unit, n):
nunit = unit * n
f = frame()
for i in xrange(n+1):
if i%5==0:
color = (1,1,1)
else:
color = (0.5, 0.5, 0.5)

curve(pos=[(0,i*unit,0), (nunit, i*unit, 0)],color=color,frame=f)
curve(pos=[(i*unit,0,0), (i*unit, nunit, 0)],color=color,frame=f)
return f

arrow(pos=(0,0,0), axis=(5,0,0), color=(1,0,0), shaftwidth=0.1)
arrow(pos=(0,0,0), axis=(0,5,0), color=(0,1,0), shaftwidth=0.1)
arrow(pos=(0,0,0), axis=(0,0,5), color=(0,0,1), shaftwidth=0.1)
grid_xy = make_grid(0.5, 10)
grid_xz = make_grid(0.5, 10)
grid_xz.rotate(angle=pi/2, axis=(1,0,0), origin=(0,0,0))
grid_yz = make_grid(0.5, 10)
grid_yz.rotate(angle=-pi/2, axis=(0,1,0), origin=(0,0,0))
sphere(radius=0.3)

obj = arrow(pos=(0,0,0), axis=(1,2,3), shaftwidth=0.3)
th = 0
while True:
rate(20)
obj.axis = (3*math.cos(th), 3*math.sin(th), 2)
th += 0.04

enter image description here

关于java - 我需要在 3 维空间中绘制一个简单的动画箭头 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9280885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com