【发布时间】:2014-04-10 10:59:39
【问题描述】:
我在这里使用 fabricjs 我有一个选项 CUSTOM DECAL 在画布上绘制形状。当我在 OVAL 形状的曲线点上描边或增加 OVAL 形状的边框宽度时,我遇到了椭圆形的问题,它显示了边框width double 比较 OVAL 的上侧和下侧。
我用来描边椭圆形边框的代码示例
//*****************scale oval canvas border width*******************
var ovalstrokewidth=0;
$("#ovalstrokewidth").change(function() {
var otrokew=(this.value);
$(".width_val_oval").html(otrokew);
ovalstrokewidth= parseInt(otrokew);
ovalcval=(this.value);
var w;
var h;
var ctx = canvas.getContext('2d');
canvas.clipTo = function(ctx) {
w=canvas.width / 4;
h=canvas.height / 2.4;
ctx.save();
ctx.scale(2, 1.2);
ctx.arc(w, h,ovalcrad , 0, 2 * Math.PI, true);
$("#decal_color").css('display', 'block');
//ctx.fillStyle = "#555";
ctx.fillStyle =decal_border_colour_oval;
ctx.strokeStyle = ctx.fillStyle;
//ctx.lineWidth = 1.5;
ctx.lineWidth = ovalstrokewidth;
ctx.stroke();
ctx.restore();
};
canvas.renderAll();
});
//-----------------End scale oval canvas border width------------
- 点击贴花形状
- 选择 OVAL 选项
- 增加边框宽度
【问题讨论】:
-
这可能会有所帮助(这似乎也是markE回答的基础?):stackoverflow.com/questions/21594756/…
-
我想我在 2 个月前遇到了同样的问题,但我没有得到答案,因为在 fabricjs 库文件中仍然没有方法来增加与 scaleX 和椭圆边框的比例相同的椭圆线宽。因此所有答案都是错误的。