我已经成功地实现了地板剪裁平面来测量左脚到地板的距离,这是相当准确的。我的问题是,当我离开相机时(即左脚Z轴增加),脚到地板的距离改变(增加)。
注:地板本身没有倾斜,也没有Kinect支架。
我用Kinect 1对它进行了测试,得到了同样的结果。拍摄对象的头部高度(Y轴)也会随着我移开或靠近相机而改变值。相机是否倾斜或视线是否倾斜并不重要。在测试过程中,FloorClipPlane方程中的D值显示为一个常量。
A = bodyFrame.FloorClipPlane.X;
B = bodyFrame.FloorC
我想知道更多关于在2D中获取点到线的距离的非常具体的方法。这是如何做到的:
// Given an arbitrary point, and a normal vector
// to a line along with a scalar offset
distance = DotProduct(normal, point) - offset
我知道这是真的,因为Erin在他的Box2D Lite源代码中使用了这个方法。在上,程序员提到了这个等式:
distance = (V dot normal) - offset
这是我唯一能找到的资源来进行这样的计算。检查与点的半空间交点的通常方法是将一
实时碰撞检测书有以下方程。
// Compute the t value for the directed line ab intersecting the plane
Vector ab = b - a;
t = (p.d - Dot(p.n, a)) / Dot(p.n, ab);
所以我现在有一个
GLKVector3 abD = GLKVector3Subtract(b, a);
GLKVector3 planeD = GLKVector3Make(1.0f, 0.0f, 1.0f);
GLKVector3 planeN = GLKVector3Make(0.0f, 1.0f, 0.
我有很多3D平面。我需要知道的是计算角度的方法。我希望,我可以通过使用每个平面(我的平面方程是ax+ by -z+c=0;所以这个平面的法向量是a,b,-1)到XY平面的投影法向量来计算方位角。然后,从Y轴开始,我可以计算出角度。但是,我不知道如何得到投影到XY平面后的法向量。然后,我可以应用给出两个向量之间夹角的方程,来计算我想要的向量与y轴的夹角。
另一方面,我发现,角度定义为沿平面最陡峭的坡度通过的任何直线与北向(这里为Y轴)之间的角度。这个定义会遵循我提出的取法向量的方法吗?我的意思是,投影法向量总是沿着平面的最陡坡给出的吗?另外,有人告诉我,这个问题应该考虑为2D问题。请评论我,并将
我今天注意到XNA4.0中的Plane.Transform似乎没有给出我期望的结果。
var s = Matrix.CreateScale(0.1f);
var p = new Plane(new Vector3(1.0f, 0.0f, 0.0f), 1.0f);
var p = Plane.Transform(p, s);
我原本期望飞机现在的星等为0.1f,但实际上它的距离为1,法线长度为10:
{Normal:{X:10 Y:0 Z:0} D:1}
这一切为什么要发生?
以下是从球面坐标到笛卡尔坐标的转换
X = r cosθ sinΦ
Y = r sinθ sinΦ
Z = rcosΦ
我们使用逆向计算从笛卡尔坐标计算球面坐标,其定义为
r = √(x^2+y^2+z^2 )
θ = atan(Y./X)
Φ = atan(√(X^2+Y^2 )./Z)
当Y和X为零时,问题就出现了,因此在θ计算期间,这会导致NAN(而不是数字),从而使θ不连续。有没有什么插值技术可以消除这种不连续性,以及在这种情况下如何解释θ。
θ是一个在不同点上的矩阵,它给出了以下结果,它有跳跃和黑色补丁,表示不连续,而我需要生成具有平滑变化的以下图像。请查看获得的thet
我见过HouseHolder方程,它创建了一个反映平面上一个点的矩阵,但该方程假定平面只有一个法向量v。 我的飞机有3个组件 The normal unit vector V
A point that lies on the plane P
Distance of the plane from origin D 全部存储在单独的变量中。 我如何扩展方程以将点和距离纳入其计算中,或者我需要一种不同的方法?
var x = Cx + a * Math.cos(ang);
var y = Cy + b * Math.sin(ang);
Cx, Cy是中心线。ang是radians的角度。a是宽度的一半,b是高度的一半。
如果改变ang值,就会得到椭圆周长上的不同点。下面是路径,我用上面的方程得到。
但我要的不是这个椭圆的形状,而是半椭圆,像凹面的镜子。即使我们把它的两端伸展到无穷远,它们也不应该形成椭圆形。
有人能给我第二条曲线的极坐标方程吗。我很擅长数码绘画,但你可以想象一下,那是凹面镜子。
我有三个平面的法线,它们彼此在90度处,并通过原点。
我还有一点到这三个平面的距离。如何确定C#中点的位置?
这是我目前所拥有的..。
public static Vector3 RealWorldSpaceToOtherSpace(Vector3 realspace, Vector4 clipplane)
{
// Work out the normal vectors of 3 imaginary planes
Vector3 floor = new Vector3(clipplane.X, clipplane.Y, clipplane.Z)