【发布时间】:2018-06-15 13:32:15
【问题描述】:
所以当我发现 Bresenham 算法时,我正在四处寻找线算法。我决定制作它的代码版本,并且在大多数情况下,它有效。然而,当我想画一个正方形时,我遇到了一个问题。它不会画出一条线。这是我的代码(我应该提到我正在使用 p5.js):
function drline(xs, ys, xe, ye) {
if(xs == xe && ys == ye){
point(xs, ys);
} else {
var df = (ye - ys) / (xe - xs);
var lf = 0;
var tf = 0;
var is = 0;
for(var i = xs; i <= xe; i++){
tf = i - xs;
lf = df * tf;
is = lf+ys;
console.log("X: " + i + ", Y: " + is);
point(i, is);
}
}
}
function init(){
createCanvas(700, 600);
background(80);
stroke(100, 200, 255);
}
function setup(){
init();
drline(300, 100, 400, 100);
drline(300,200, 400, 200);
drline(300, 100, 300, 200);
}
我还注意到控制台上的最后一个值是 X:300,Y:NaN。抱歉,如果这听起来有点笨拙,但我不确定问题是什么。先感谢您! :)
【问题讨论】:
标签: javascript p5.js bresenham