r****y 发帖数: 1437 | 1
椭球把空间分成三个区域
x**2/a**2+y**2/b**2+z**2/c**2
> or = or < 0
Test if all points on your segment are >0 for above sum, then totally
outside. | H****h 发帖数: 1037 | 2 经过线性变换可以变成球,线段还是线段。
求出球心到该线段所在直线的垂足。
如果该垂足在线段里,而垂足不在球内,
则整个线段就与球不交。
如果该垂足不在线段里,而且两个端点都不在球内,
则线段就与球不交。 | f******k 发帖数: 297 | 3 对, 就是平移在加上线性变换. 在直角坐标中椭球
可以用正定二次型表示(当球心在原点时)
x'Ax=c
然后A=B'DB, D是对角阵, B就是特征矩阵, 也就是
线性变换矩阵. 然后根据特征值作坐标伸缩, 最后
求原点到变换后直线的距离就可以了.
【在 H****h 的大作中提到】 : 经过线性变换可以变成球,线段还是线段。 : 求出球心到该线段所在直线的垂足。 : 如果该垂足在线段里,而垂足不在球内, : 则整个线段就与球不交。 : 如果该垂足不在线段里,而且两个端点都不在球内, : 则线段就与球不交。
|
|