我需要的是位于同一3D平面内且具有相同原点的两个矢量Va和Vb之间的有符号旋转角度,知道:
应该以这样的方式测量角度,因此如果平面是XY平面,则Va将代表它的X轴单位矢量.
我想我应该通过使用Va作为X轴并将Vb和Vn的叉积作为Y轴来执行一种坐标空间变换,然后使用像atan2()或其他东西一样的2d方法.有任何想法吗?公式?
什么是三维建模软件广泛使用的THREE.JS的三维模型格式(可以导出为该格式).我问这个问题,因为我的3D模型有自己独特的格式,并希望在THREE.JS中使用它们.虽然我可以编写自己的加载器,但我认为将它们转换为标准格式会更好.
我正在搜索具有3维(x,y和z)并使用D3.js的图.请告诉我,如果有任何数据可视化网站,我可以找到这样的图表,或者如果d3js.org上有一个我错过了某种方式.
我在opengl中制作了一个android项目,它使用加速计来计算特定轴的变化,我的目标是旋转我的类似航天器的物体的运动矢量.问题是我无法理解旋转矩阵背后的数学.默认运动矢量为0,1,0,表示+ y,因此对象在开头向上看.而我正在尝试旋转它的运动矢量,这样我就可以移动它所指向的物体.我可以在手机中收集旋转变化.x轴:旋转[0],y轴:旋转[1],z轴:旋转[2].如何使用旋转矩阵旋转运动矢量?
我有一个3D数据集:
data = data.frame(
x = rep( c(0.1, 0.2, 0.3, 0.4, 0.5), each=5),
y = rep( c(1, 2, 3, 4, 5), 5)
)
data$z = runif(
25,
min = (data$x*data$y - 0.1 * (data$x*data$y)),
max = (data$x*data$y + 0.1 * (data$x*data$y))
)
data
str(data)
Run Code Online (Sandbox Code Playgroud)
我想绘制它,但R alwyas的内置函数给出了错误
增加'x'和'y'值预期
# ### 3D Plots ######################################################
# built-in function always give the error
# "increasing 'x' and 'y' values expected"
demo(image)
image(x = data$x, y = data$y, z = data$z)
demo(persp)
persp(data$x,data$y,data$z)
contour(data$x,data$y,data$z)
Run Code Online (Sandbox Code Playgroud)
当我在互联网上搜索时,我发现当X和Y值的组合不唯一时会发生此消息.但在这里他们是独一无二的 …
在OpenGL着色语言(GLSL)中讨论凹凸贴图,镜面高光和这些东西
我有:
现在,我如何计算每个顶点的Binormal和Tangent?我的意思是,计算Binormals的公式是什么,我必须根据这些信息使用什么?和切线相关?
无论如何我都会构建TBN矩阵,所以如果你知道根据这些信息直接构造矩阵的公式会很好!
哦,是的,如果需要,我也有纹理坐标.正如我所说的GLSL,我认为,每个顶点解决方案都是不错的,它不需要一次访问多个顶点信息.
----更新-----
我找到了这个解决方案
vec3 tangent;
vec3 binormal;
vec3 c1 = cross(a_normal, vec3(0.0, 0.0, 1.0));
vec3 c2 = cross(a_normal, vec3(0.0, 1.0, 0.0));
if (length(c1)>length(c2))
{
tangent = c1;
}
else
{
tangent = c2;
}
tangent = normalize(tangent);
binormal = cross(v_nglNormal, tangent);
binormal = normalize(binormal);
但我不知道它是否100%正确.
我想得到一个着色器程序对象使用的所有制服和属性的列表. glGetAttribLocation()&glGetUniformLocation()可以用来将字符串映射到一个位置,但我真正想要的是字符串列表而不必解析glsl代码.
注意:在OpenGL 2.0中glGetObjectParameteriv()被替换为glGetProgramiv().而enum是GL_ACTIVE_UNIFORMS&GL_ACTIVE_ATTRIBUTES.
我希望有经验的人可以帮助我们如何从xyz数据中准备形状文件.虽然没有提供创建形状文件的前面步骤,但可以在这里看到彗星Churyumov-Gerasimenko 的精心准备的数据集的一个很好的例子.
我试图更好地理解如何将曲面应用于给定的XYZ坐标集.使用笛卡尔坐标是直接使用R包"rgl",但是环绕的形状看起来更难.我找到了R包geometry,它提供了QHULL函数的接口.我尝试使用它来计算Delaunay三角剖面,然后我可以用它绘制rgl.我无法弄清楚与该功能相关的一些选项delaunayn,可能控制这些方面的最大距离.我希望这里有人可能对xyz数据改进表面结构有一些想法.
library(onion)
library(rgl)
library(geometry)
data(bunny)
#XYZ point plot
open3d()
points3d(bunny, col=8, size=0.1)
#rgl.snapshot("3d_bunny_points.png")
#Facets following Delaunay triangulation
tc.bunny <- delaunayn(bunny)
open3d()
tetramesh(tc.bunny, bunny, alpha=0.25, col=8)
#rgl.snapshot("3d_bunny_facets.png")
Run Code Online (Sandbox Code Playgroud)

这个答案让我相信Qhull的R实现可能存在问题.此外,我现在尝试了各种设置(例如delaunayn(bunny, options="Qt")),效果甚微.Qhull选项在此处列出
这是一个额外的(更简单的)球体示例.即使在这里,小平面的计算并不总能找到最近的相邻顶点(如果你旋转球,你会看到一些小平面穿过内部).
library(rgl)
library(geometry)
set.seed(1)
n <- 10
rho <- 1
theta <- seq(0, 2*pi,, n) # azimuthal coordinate running from 0 to 2*pi
phi <- seq(0, pi,, n) # polar …Run Code Online (Sandbox Code Playgroud) 任何人都知道一个源,网站,我可以得到一些很好的3D交叉算法实现,如