gpt4 book ai didi

javascript - 美国队长与 svg

转载 作者:太空宇宙 更新时间:2023-11-03 19:40:56 24 4
gpt4 key购买 nike

我怎样才能用 svg 做这个星星?我必须使用 svg 并且尝试使用点但不起作用。我不能使用元素路径。谢谢。

<!DOCTYPE html>
<html>

<body>
<svg width="100" height="100">
<circle cx="50" cy="50" r="45" fill="white" stroke="red" stroke-width="10" />
<circle cx="50" cy="50" r="30" stroke="red" stroke-width="10" fill="blue" />
<polygon points="50,25 30,80 75,40 25,40 70,70" style="fill:white;"/>
</svg>
</body>

</html>

最佳答案

如果你想得到最准确的五 Angular 星点,你可以很容易地从底层五边形中得到它们。

enter image description here

获取这些点的简单 js 函数是这样的(REPL,顺便说一句,您可以将其用于具有任意 n 条边的多边形):

var n = 5;
var points = [];
for (var i=0; i < n; i++) {
var x = 50;
var y = -50;
var r = 25;
points.push([x + r * Math.sin(2 * Math.PI * i / n),
y + r * Math.cos(2 * Math.PI * i / n)]);
}

结果是从顶部开始的顺时针方向的五边形点(使用所有值作为正值):

[ [ 50, -25 ],
[ 73.77641290737884, -42.27457514062631 ],
[ 64.69463130731182, -70.22542485937369 ],
[ 35.30536869268818, -70.22542485937369 ],
[ 26.22358709262116, -42.27457514062632 ] ]

您的订单将是 points[x],其中 x = 0, 3, 1, 4, 2

并将它们用于您的示例四舍五入到最接近的像素:

<!DOCTYPE html>
<html>
<body>
<svg width="100" height="100">
<circle cx="50" cy="50" r="45" fill="white" stroke="red" stroke-width="10" />
<circle cx="50" cy="50" r="30" stroke="red" stroke-width="10" fill="blue" />
<polygon points="50,25 35,70 73,42 26,42 65,70" style="fill:white;"/>
</svg>
</body>
</html>

关于javascript - 美国队长与 svg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37007320/

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