Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “画布上下文”;“贝塞尔曲线”;在Chrome 16+;下有一个bugSafari 5&x2B;_Javascript_Html_Google Chrome_Canvas_Safari - Fatal编程技术网

Javascript “画布上下文”;“贝塞尔曲线”;在Chrome 16+;下有一个bugSafari 5&x2B;

Javascript “画布上下文”;“贝塞尔曲线”;在Chrome 16+;下有一个bugSafari 5&x2B;,javascript,html,google-chrome,canvas,safari,Javascript,Html,Google Chrome,Canvas,Safari,如果抚摸最后一个控制点与第一个点重叠的贝塞尔曲线,曲线形状将不会显示在画布上;示例代码如下所示 var cv = document.getElementById('cv'), cxt = cv.getContext('2d'), // 4 points : last point overlaps first point; pts = [[100, 100], [400, 50], [350, 300], [100, 100]]; // draw bezier curve cxt

如果抚摸最后一个控制点与第一个点重叠的贝塞尔曲线,曲线形状将不会显示在画布上;示例代码如下所示

    var cv = document.getElementById('cv'), cxt = cv.getContext('2d'),

//  4 points :  last point overlaps first point;
pts = [[100, 100], [400, 50], [350, 300], [100, 100]];

//  draw bezier curve
cxt.beginPath();
cxt.moveTo(pts[0][0], pts[0][1]);
cxt.bezierCurveTo(pts[1][0], pts[1][2], pts[2][0], pts[2][3], pts[3][0], pts[3][4]);

cxt.stroke();
我以前在chrome帮助论坛上问过,但从未得到任何回复。为什么没有人注意到这一点?是虫子吗

由于我现在没有附加图像的许可,请检查这里的实时样本,您肯定知道我在说什么:
这是hack,但您可以在其中一个坐标(x或y)上应用小偏移量。在这种情况下,第一个点和最后一个点的坐标将不完全相同,
Chrome
将绘制曲线。试着这样做:

pts = [[100, 100], [400, 50], [350, 300], [100, 100]];

//....

cxt.moveTo(pts[0][0], pts[0][1]);
cxt.bezierCurveTo(pts[1][0], pts[1][1], 
                  pts[2][0], pts[2][1], 
                  pts[3][0], pts[3][1]+1e-5);

试图吸引Webkit开发人员的眼球?:)谢谢事实上,我知道如何解决这个问题,但我只是想通知Chrome团队在一些更高版本中解决这个问题。我很久以前就在Chrome论坛上发布了这个问题,但没有得到任何回应。@zc0000所以在
stackoverflow
中,我想你正在寻找观众来支持你“敲开
Webkit
开发者之家的大门”。)