相切于球体上定点的平面

文章目录


1.问题描述

该问题同二维平面上求解过圆上一点的直线问题类似。

2.已知条件

已知球体表面上一点P, 球心C,求球面上P点的切面M。

3.求解

令向量 n = P − C n = P-C n=P−C,则 u = ( n y , − n x , 0 ) , v = u × n u=(n_y,-n_x,0),v=u\times n u=(ny,−nx,0),v=u×n

平面 M = P + t ⋅ u + m ⋅ v M = P+t\cdot u +m\cdot v M=P+t⋅u+m⋅v

4.Code

matlab 复制代码
close all;
clear;


rng default;

C = rand(1,3);
r = rand();
t = rand(1,2)*pi;
P = C + [r*cos(t(1))*sin(t(2)), r*sin(t(1))*sin(t(2)), r*cos(t(2))];

t = linspace(0, 2*pi, 50);
u = linspace(0, 2*pi, 50);
[t,u] = meshgrid(t,u);

x = C(1) + r*cos(t).*sin(u);
y = C(2) + r*sin(t).*sin(u);
z = C(3) + r*cos(u);

n = normalize(P - C,'norm');
m = [0, n(3), -n(2)];
l = cross(m,n);
c1 = linspace(-1,1,20);
c2 = linspace(-1,1,20);
[c1,c2] = meshgrid(c1,c2);
xx = P(1) + c1*m(1) + c2*l(1);
yy = P(2) + c1*m(2) + c2*l(2);
zz = P(3) + c1*m(3) + c2*l(3);


figure;
mesh(x,y,z);
axis equal
hold on
mesh(xx,yy,zz)
hold on
scatter(P(1),P(2), P(3),'filled')
相关推荐
杨连江几秒前
原子级平面限域协同晶核诱导定向生长单层鳞片石墨的研究
算法
MATLAB代码顾问6 分钟前
混合粒子群-模拟退火算法(HPSO-SA)求解作业车间调度问题——附MATLAB代码
算法·matlab·模拟退火算法
Felven10 分钟前
C. Prefix Min and Suffix Max
算法
加农炮手Jinx11 分钟前
LeetCode 26. Remove Duplicates from Sorted Array 题解
算法·leetcode·力扣
加农炮手Jinx11 分钟前
LeetCode 88. Merge Sorted Array 题解
算法·leetcode·力扣
格林威11 分钟前
线阵工业相机:如何计算线阵相机的行频(Line Rate)?公式+实例
开发语言·人工智能·数码相机·算法·计算机视觉·工业相机·线阵相机
yueyue54314 分钟前
透过现象看本质:以fast_lio架构的整套算法的局部避障改为TEB算法为例深度探讨——如何成为一个合格的算法架构师?
算法·架构
梨花爱跨境14 分钟前
红人视频×A10算法:亚马逊转化率与流量闭环实战
算法
阿Y加油吧19 分钟前
二刷 LeetCode:75. 颜色分类 & 31. 下一个排列 复盘笔记
笔记·算法·leetcode
风筝在晴天搁浅20 分钟前
LeetCode 378.有序矩阵中第K小的元素
算法·矩阵