就像标题所说的那样。我试图使用两条垂直于一个圆的二次曲线来创建3d的错觉,以显示它是向内或向外弯曲的。我想,如果我能找到交叉点,并在交叉点周围画一个更小的圆圈,这个错觉就完成了。What I have so far
编辑:既然这看起来太难了,有没有一个函数可以用来替换quadraticCurve to函数,它在一个点开始,经过一个点,在一个点结束?
发布于 2016-07-26 18:11:20
实际上,您有一个由两个变量的两个二次方程组成的系统,即两条曲线的参数。您可以使用例如resultants消除其中一个变量,然后检查一个参数的所有可能选择,以查看它和另一个参数的相应值是否为实数,并且在0,1范围内。结果将是一个4次多项式,因此您将需要相当多的数学知识来解决这个问题,尽管不需要求助于数值方法也可以做到这一点。
如果所有这些听起来太复杂,并且您知道将只有一个交叉点,我建议使用二分法。将其中一条二次曲线转换为隐式形式(可能再次使用resultants来消除参数)。这样,您就可以很容易地检查给定点在曲线的哪一边。然后在另一条曲线的参数上一分为二:从两个端点开始,拾取其间的一个点,然后使用它插入其中一个端点,以使您持有的两个点始终位于另一条曲线的不同侧。继续操作,直到参数范围足够小。
也可以将这两条曲线转换为隐式形式,然后按照these instructions计算两个二次曲面之间交点的形式,这种方法只需要计算三次多项式的根,而不需要计算四次多项式的根。
https://stackoverflow.com/questions/38581070
复制相似问题