首页 > 编程知识 正文

计算机图形学抛物线程序,计算几何需要基础吗

时间:2023-05-04 04:40:04 阅读:162519 作者:941

老师在说定义法,但大多数博客都用扫描线法。

参考博客: http://www.cn blogs.com/seiya goo/p/3339886.html

这个博客里已经很清楚了,但现在有了大致的总结。

首先,在event队列中,使用平衡二叉树的数据结构,使数据的删除和检索可以在logn的时间内完成。 另一方面,event中存储了两个节点。 一个基本点是所有初始点集,它们称为site事件点,第二个是circle事件点。 到达此点后,三个弧退化为两个。 此点是三个事件节点外接圆的最低y坐标点。 因此,event中存储的key值按照y坐标的优先顺序被存储。

树中存储了抛物线的信息。 抛物线表示平面内固定点和到扫描线距离相等的所有点的集合,他们构成了抛物线。 随着扫描线的变化,他们也时时刻刻在变化,但只有当扫描线在事件队列中扫描时,抛物线才会出现实质性的变化。 扫到site事件点时,会添加新的抛物线,还会添加新的断点。 此时,这条抛物线实际上退化为一条线段,两个断点重叠,当抛物线继续向下扫描时,两个断点逐渐分离,因此到达site事件点时,两个断点会

当到达circle事件点时,该circle事件点是三个site点外接圆的最低y坐标点。 此时,三条抛物线聚集在一个点q。 此时,q点一定是voronoi图的顶点。 从树中删除退化抛物线。

一些细节问题:

1 .寻找该垂线段相交弧的方法。

因为弧一定在叶的节点上,所以通过查找当前site节点的横坐标,可以找到最后指定的叶节点。 这个叶子的节点是我们想要的弧。

2 .寻找邻弧三元组的方法。

找到以pi为左端的三元组,只需找到pi右边的两个右边的孩子即可。

找到以pi为右端的三元组,只需找到pi左边的两个左边的孩子即可。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。