gpt4 book ai didi

javascript - 拉斐尔的锥形线

转载 作者:行者123 更新时间:2023-11-28 20:32:50 25 4
gpt4 key购买 nike

我正在尝试绘制一些动画草叶,我想生成一条底部较厚、顶部较薄的锥形曲线。我能想到的唯一方法是绘制每条具有较小长度和较大线宽的曲线。

我很好奇是否有人有更好的方法。

最佳答案

请尝试以下功能。它画出了草地的开放轮廓。您可以修改它以满足您的需要。为拉斐尔编码。

/**
* drawAGrass draws an open base grass.
* @param paper Raphael paper instance
* @param baseX X position of the grass base center
* @param baseY Y position of the grass base center
* @param baseW Width of the grass base
* @param length Length of the grass
* @param tilt Angle of shift of the grass tip; Safe range: [-45, 45]
*/
function drawAGrass (paper, baseX, baseY, baseW, length, tilt) {
var x1 = baseX + baseW * 0.5,
x2 = baseX - baseW * 0.5,
ang = (180 - tilt) * Math.PI / 180,
x = Math.round(baseX + length * Math.sin(ang)),
y = Math.round(baseY + length * Math.cos(ang));

paper.path(['M', baseX, baseY, 'Q', baseX, y, x, y]);
paper.path(['M', x1, baseY, 'Q', x1, y, x, y]);
paper.path(['M', x2, baseY, 'Q', x2, y, x, y]);
}

像下面这样使用它。

var paper = Raphael(0, 0, 500, 350);
drawAGrass(paper, 250, 330, 15, 150, 25);

关于javascript - 拉斐尔的锥形线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16011709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com