绘图算法[关闭]

Posted

技术标签:

【中文标题】绘图算法[关闭]【英文标题】:An algorithm for plotting [closed] 【发布时间】:2017-10-28 18:13:45 【问题描述】:

我一直在解决这个问题,但我无法解决它。不知道从哪里开始,有人可以帮助我吗?

int below(Plot p, line l);
int above(Plot p, line l);
line findLine(Plot p, line l)


【问题讨论】:

Why is “Can someone help me?” not an actual question? @Amadeus.: 是的...我明白了 【参考方案1】:

这是标准的二分查找问题。

现在想想你需要找到什么?

线y = k 将绘图分成两等份(基于点数)。

y 的取值范围是多少?

显然是-1+1

你能计算出一条线是否满足问题所需的属性吗?

是的,你可以。只需检查 Plot p 的每个点,然后检查其中有多少点的y 坐标大于k。你知道总点数,你就会知道直线两侧的点是否相等。

方法

假设您选择了一行y=k。现在在这一点上,您会看到上面的点比下面的点多。现在你将向上移动。如果有更多的下行空间,那么您将向下移动。

double good = -1.0,bad= 1+EPSILON;
for(int iter=0;iter<=100;iter++)

    mid = (good+bad)/2.0;
    if(check(P,mid)) // if equally divides it then it's done
       // mid is one answer;
    else if( below(p,mid)<above(p,mid))
       good=mid;
    else 
       bad=mid;

【讨论】:

以上是关于绘图算法[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

最简单的Voronoi图算法实现? [关闭]

神经网络算法所绘图象是否构成作品

通过删除单个节点来降低图的连通性的最佳算法是啥? [关闭]

算法图绘制工具Graphviz

树布局算法(翻译)

C ++中巨大图的数据结构[关闭]