有很多关于如何在画布上绘制线条的例子,在js中。使用算法的Javascript画布画出奇怪的行为
但是仅用于教育目的我想画线使用算法。基本上方法获得两个Vector2点,从它们找到中点,然后递归地继续,直到达到2像素的最小距离。
我有DrawPoint方法基本上在画布上画出1个点,DrawLine方法完成所有工作。
现在我有2个问题:
1:点不红色,因为他们应该的。
2:
它没有看起来像一条线。
对于Vector2我用“Victor.js”插件,它似乎运作良好。
这是代码我有:
JS:
var point2 = new Victor(100, 100);
var point3 = new Victor(150, 150);
DrawLine(point2, point3);
function DrawLine(vec0, vec1)
{
var point0 = new Victor(vec0.x, vec0.y);
var point1 = new Victor(vec1.x, vec1.y);
var dist = point1.distance(point0);
if (dist < 2)
return;
//this is how it should look like in c# var middlePoint = point0 + (point1 - point0)/2; But looks like i cant just divide by 2 using victor js because i can only divide vector by vector.
var middlePoint = point0.add(point1.subtract(point0).divide(new Victor(2,2)));
DrawPoint(middlePoint);
DrawLine(point0, middlePoint);
DrawLine(middlePoint, point1);
}
function DrawPoint(point){
var c = document.getElementById("screen");
var ctx = c.getContext("2d");
ctx.fillStyle = "FF0000";
ctx.fillRect(point.x, point.y, 3,1);
}
我真的很感激任何帮助,您可以提供。
它看起来像一条线,也需要一个有效的颜色 - >'#FF0000' –
为什么不只是'middlePoint =(point0 + point1)/ 2'? – meowgoesthedog
@meowgoesthedog因为看起来不起作用。对于减法和增加,这个插件有自己的方法,也适用于分区。 – Nick