使用PHP/HTML生成SVG多边形会产生奇怪的结果
我想渲染一个SVG图像,比如手表。 视图框为1000 x 1000px,因此中心/偏移量为500500 基本html如下所示:使用PHP/HTML生成SVG多边形会产生奇怪的结果,php,svg,Php,Svg,我想渲染一个SVG图像,比如手表。 视图框为1000 x 1000px,因此中心/偏移量为500500 基本html如下所示: <div class="imageMap"> <svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 1000 1000&qu
<div class="imageMap">
<svg xmlns="http://www.w3.org/2000/svg"
width="100%" height="100%" viewBox="0 0 1000 1000">
<defs><style>
.imageMap polygon { fill: red; opacity:0.5; }
.imageMap polygon:nth-child(2n) { fill: green; }
</style></defs>
<image width="100%" height="100%"
xlink:href="clear.gif"></image>
<?php render() ?>
</svg>
</div>
.imageMap多边形{填充:红色;不透明度:0.5;}
.imageMap多边形:第n个子(2n){填充:绿色;}
php:
function render() {
$parts=4;
$arc = 360/$parts; $offsetX=500; $offsetY=500;
for($i=0; $i < 360; $i += $arc) {
$x0 = $offsetX;
$y0 = $offsetY;
$x1 = cos($i) * 500+$offsetX;
$y1 = sin($i) * 500+$offsetY;
$x2 = cos($i+$arc) * 500+$offsetX;
$y2 = sin($i+$arc) * 500+$offsetY;
$stringArray[] = '<polygon points="'.$x0.','.$y0.','.$x1.','.$y1.','.$x2.','.$y2.'"/>';
}
return implode(PHP_EOL, $stringArray);
}
function render(){
$parts=4;
$arc=360/$parts;$offsetX=500;$offsetY=500;
对于($i=0;$i<360;$i+=$arc){
$x0=$offsetX;
$y0=$offsetY;
$x1=cos($i)*500+offsetX美元;
$y1=sin($i)*500+offsetY美元;
$x2=cos($i+$arc)*500+$offsetX;
$y2=sin($i+arc)*500+offsetY;
$stringArray[]='';
}
返回内爆(PHP_EOL,$stringArray);
}
根据cos和sin取弧度值。您提供的值以度为单位,因此值太大
您可以使用将度转换为弧度。#-)您完全正确:deg2rad($i)完成了这项工作!非常感谢。