我在一个球体上有一个三维点,并想从它转换为球体纹理上的UV点。
谁能帮我指一下正确的方向吗?我可以接受一个纯数学的解决方案。
编辑:
我目前有这个,它没有返回正确的UV坐标。P是球体上的三维点mesh.position是球体的位置
var x = (p.x-mesh.position.x)/500;
var y = (p.y-mesh.position.y)/500;
var z = (p.z-mesh.position.z)/500;
var u = Math.atan2(x, z) / (2 * Math.PI) + 0.5;
var v = Math
我找到了其他人的例子,它展示了如何在python中绘制一个球体,但我很好奇是否有一个方程表示沿着一个球体的各个纵向线。
示例: Python/matplotlib :绘制三维立方体、球体和向量?
# draw sphere
u, v = np.mgrid[0:2*np.pi:20j, 0:np.pi:10j]
x = np.cos(u)*np.sin(v)
y = np.sin(u)*np.sin(v)
z = np.cos(v)
ax.plot_wireframe(x, y, z, color="r")
我想要的是一个大圆圈的方程式,它沿着一个球体运行,并能画出它们
我有一个三维空间点云保存在一个铺设文件。
取一个点(x,y,z)作为球体的中心,我想画出整个点云,但是用半径R的球体,它包含点云的几个点,但不是所有的云。
球体应该是相当透明的,以使内部的点可见。
我尝试了以下几点,但没有成功:
% Read point cloud file
ptCloud = pcread('frame0000.ply');
% Show point cloud
pcshow(ptCloud);
hold on
% Sphere generation
[x, y, z] = sphere;
surf(x,y,z)
hold on
% Sphere cen
每次单击屏幕时,我都试图在鼠标位置绘制球体。
我写了一个函数来获得三维鼠标坐标,每次鼠标被点击。就像一种魅力。
现在我怎样才能在这些地方创造球体。
void display()
{
...
...
glColor3f(1,0,0)
glutWireSphere(3,100,100);
glTranslatef(X,Y,Z);
}
void MouseFunc()//where the 3D mouse coordinates are recieved
{
double X,Y,Z// where I store the coordinates.
.....
.....
glutDisplay
我想用gnu图对大量不同直径的球体进行三维表示,这些球的信息都在一个名为'data.dat'的文件中。如果我这样做了:
splot 'data.dat' u 1:2:3 w p lt 7
我得到了一系列均匀颜色的小维点。如何使用命令添加球体的实际大小(从文件'data.dat'的第4列读取)?类似于:
splot 'data.dat' u 1:2:3:4 ...
我正在处理可以通过以下方式加载的stl数据:
# load a file by name or from a buffer
mesh = trimesh.load_mesh('./dummydata.stl')
# preview mesh in a pyglet window from a terminal, or inline in a notebook
mesh.show()
这将创建一个由于机密性问题而无法公开的3D对象。然而,为了这个问题,我构造了一个示例对象。。正如你在图片中所看到的,有一个‘外部物体’,盒子,和一个内部物体,球体。
我的目标是提取球体并创建一个单独