【发布时间】:2021-10-25 16:37:02
【问题描述】:
如果您插入一个段编号,下面的代码将绘制一个段。这工作正常。现在我想总是这样画线段:
我试图更改$start 数组中的“90”,但这并不能解决我的问题。所以我现在迷路了。感谢您的帮助。
<?php
function segment_circle($segments, $size = 200) {
$radius = $size / 2;
$segment_arc = 360 / $segments;
$generate_arc = function($start_angle, $end_angle) use ($radius) {
$start = [
'x' => $radius + ($radius * cos( ($end_angle - 90) * pi() / 180 )),
'y' => $radius + ($radius * sin( ( $end_angle - 90) * pi() / 180 ))
];
$end = [
'x' => $radius + ($radius * cos( ($start_angle - 90) * pi() / 180 )),
'y' => $radius + ($radius * sin( ($start_angle - 90) * pi() / 180 ))
];
$arc = $end_angle - $start_angle <= 180 ? '0' : '1';
return implode( ' ', [
// Move to
'M', $start[ 'x' ], $start[ 'y' ],
// Bogen zeichnen
'A', $radius, $radius, 0, $arc, 0, $end[ 'x' ], $end[ 'y' ],
// Line to / Close Path
'L', $radius, $radius, 'Z'
]);
};
?>
<svg width="<?php echo $size ?>" height="200" viewBox="0 0 <?php echo $size ?> <?php echo $size ?>" xmlns="http://www.w3.org/2000/svg">
<?php for ($i = 0; $i < 1; $i++): ?>
<?php
$start_angle = $segment_arc * $i;
$end_angle = $segment_arc * ($i + 1);
?>
<path fill="#FFFFFF" stroke="#000" stroke-width="1" d="<?php echo $generate_arc($start_angle, $end_angle) ?>" />
<?php endfor ?>
</svg>
<?php
}
echo segment_circle($getSegment);
}
目前它是这样画的:
【问题讨论】:
-
那么,相比之下,它目前绘制的是什么?根据您的描述,这还不清楚。
-
我编辑了帖子