便签:箭头曲线直接平滑过渡到长边,消除小拐角
This commit is contained in:
@@ -77,23 +77,15 @@ function makeStickyNote(text, fontSize, selected = false) {
|
|||||||
// 箭头 + 圆角矩形一体化路径(箭头尖端在 (ox, oy + h/2),指向坐标)
|
// 箭头 + 圆角矩形一体化路径(箭头尖端在 (ox, oy + h/2),指向坐标)
|
||||||
ctx.beginPath();
|
ctx.beginPath();
|
||||||
ctx.moveTo(ox, oy + h / 2);
|
ctx.moveTo(ox, oy + h / 2);
|
||||||
// 上侧:平滑曲线从尖端连到左上角
|
// 上侧:一条曲线从尖端平滑过渡到上边缘(终点水平切线,无折角)
|
||||||
ctx.quadraticCurveTo(
|
ctx.quadraticCurveTo(ox + arrowW * 0.7, oy, ox + arrowW, oy);
|
||||||
ox + arrowW * 0.7, oy + h / 2 - arrowH / 2,
|
|
||||||
ox + arrowW, oy + radius,
|
|
||||||
);
|
|
||||||
ctx.arcTo(ox + arrowW, oy, ox + arrowW + radius, oy, radius);
|
|
||||||
ctx.lineTo(ox + w - radius, oy);
|
ctx.lineTo(ox + w - radius, oy);
|
||||||
ctx.arcTo(ox + w, oy, ox + w, oy + radius, radius);
|
ctx.arcTo(ox + w, oy, ox + w, oy + radius, radius);
|
||||||
ctx.lineTo(ox + w, oy + h - radius);
|
ctx.lineTo(ox + w, oy + h - radius);
|
||||||
ctx.arcTo(ox + w, oy + h, ox + w - radius, oy + h, radius);
|
ctx.arcTo(ox + w, oy + h, ox + w - radius, oy + h, radius);
|
||||||
ctx.lineTo(ox + arrowW + radius, oy + h);
|
ctx.lineTo(ox + arrowW, oy + h);
|
||||||
ctx.arcTo(ox + arrowW, oy + h, ox + arrowW, oy + h - radius, radius);
|
// 下侧:一条曲线从下边缘平滑过渡回尖端(起点水平切线)
|
||||||
// 下侧:平滑曲线从下边缘连回尖端
|
ctx.quadraticCurveTo(ox + arrowW * 0.7, oy + h, ox, oy + h / 2);
|
||||||
ctx.quadraticCurveTo(
|
|
||||||
ox + arrowW * 0.7, oy + h / 2 + arrowH / 2,
|
|
||||||
ox, oy + h / 2,
|
|
||||||
);
|
|
||||||
ctx.closePath();
|
ctx.closePath();
|
||||||
|
|
||||||
if (selected) {
|
if (selected) {
|
||||||
|
|||||||
Reference in New Issue
Block a user