从3D曲线外的给定点查找切线平面

时间:2015-05-17 15:09:30

标签: matlab 3d shadow

这个问题是下面发布的问题的3D版本: Find tangent points on a curve from a user-given point outside the curve

想象一下3D曲线外的一个点(x0,y0,z0)。切线平面覆盖曲线上的曲面,可以将其视为外部点源的阴影曲面。

3D表面由z方向上的多个切片(轮廓)组成。每个切片由(x,y)点组成。在一致性方面,3D曲线可以如下生成:

t = linspace(0,2*pi,100);
x1 = 10*cos(t) + sin(7*t);
y1 = 6*sin(t) + cos(13*t);        % x1,y1  describe the first contour;  
z1 = 0;

x2 = 5*cos(t) + 0.5*sin(7*t);
y2 = 3*sin(t) + 0.5*cos(13*t);      % x2,y2  describe the first contour; 
z2 = 1;

x3 = 20*cos(2*t) + 2*sin(t);
y3 = 12*sin(t) + 2*cos(13*t);     % x2,y2  describe the first contour; 
z3 = 2;

这可以针对不同的z值和x y轮廓继续。结果应该是每个z值的x,y点范围,看起来像3D曲线上的阴影。我不确定在3D情况下,凸包是否有用。有什么建议?非常感谢您的时间!

要清楚,下图是此问题的一个示例。它在z方向上具有8个轮廓,其中z1,z2,...,z8,每个轮廓包括一组(x,y)点(每个切片中的闭合轮廓)。设置外部点,切平面的结果将是覆盖3D曲线的圆锥。锥体的底部由每个轮廓中的一系列(x,y)点组成。

enter image description here

0 个答案:

没有答案