- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要找到一条线上的所有点。我尝试了 Bresenham 的算法,但它不适用于以下情况:
(0, 0)
.-----------+-----------+-----------.
|...........| | |
|...........| | |
|.....XXXX..| | |
|........XXXX | |
|...........XXXXX | |
+-----------+---XXXX----+-----------+
| |......XXXXX|...........|
| |..........XXXX.........|
| |...........|.XXXXX.....|
| |...........|...........|
| |...........|...........|
`-----------+-----------+-----------´
(2, 1)
X
是实际的行,.
是 Bresenham 算法返回的内容,注意该行穿过 (1, 0)
但它不是标记。
如何有效地找到一条线经过的所有像素?我不需要这种抗锯齿,所以我认为 Wu 的算法有点矫枉过正。线端点位于像素中间。
引用我的算法是:
int dx = System.Math.Abs(x0 - x1);
int dy = System.Math.Abs(y0 - y1);
int sx = x0 < x1 ? 1 : -1;
int sy = y0 < y1 ? 1 : -1;
int err = dx - dy;
int lx = x0;
int ly = y0;
for(int i = 0; true; i++)
{
Mark(x0, y0);
if(x0 == x1 && y0 == y1)
break;
int e2 = err * 2;
if(e2 > -dy)
{
err -= dy;
x0 += sx;
}
if(e2 < dx)
{
err += dx;
y0 += sy;
}
}
最佳答案
好吧,只需实现显而易见的直接算法:从直线的一端开始,找到它穿过起始方 block 的哪一侧,跳转到相应的相邻方 block ......等等。一直走到终点广场。
用整数实现它的最简单方法是切换到超像素精度:只需将所有内容乘以一个常数因子。当您发现没有足够的整数范围来充分乘以它时,困难的部分就开始了……我不知道您的情况是否属于这种情况。
关于c# - 一条线穿过的所有点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5885806/
如何迭代(一行)分割函数给我的每个类? 我试过这个: 编辑(抱歉) $("p").attr("class").split(' ').each (function (i,n){alert(n)}
我有一条垂直线和一条水平线,当我动态调整我的 Canvas 父级时,我想调整它们的大小。 (地标) 我希望水平线始终距 Canvas 的左右边界 25 处,距底部边界 13 处。 垂直线也是如此,距上
我有一个 y 变量,我试图在图形的顶部和底部针对两个相关的 x 轴绘制它(例如 y="立方体中的事物数",x1="立方体的边长", x2="立方体的体积")。我在 numpy 数组中有 y、x1、x2
我想画一条简单的水平线,并在这条线 flex 的地方制作动画。我有这个动画的视频。你能给我一些建议如何开始以及我必须使用哪个 js/css 吗? 都是关于矩形底部的线: http://www.stop
我是一名优秀的程序员,十分优秀!