Как рисовать круг?
Как рисовать круг?
В википедии прописан только прямоугольник, а хочется круг?
Last edited by owler on Tue Mar 10, 2020 10:42 pm, edited 1 time in total.
Re: Как рисовать геометрические фигуры?
Круг
Инструкция
1 вставить код
2 после кода круг вызывается
P.S. Круг получится немного кривой.
Code: Select all
fn circle( $x, $y, $radius, $color )
{
$steps = 128
$i = 0 while $i <= $steps
{
$r = M_PI * 2 * ( $i / $steps )
$xx = $x + cos( $r ) * $radius
$yy = $y + sin( $r ) * $radius
if $i > 0
{
line( $prev_x, $prev_y, $xx, $yy, $color )
}
$prev_x = $xx
$prev_y = $yy
$i + 1
}
}
1 вставить код
2 после кода круг вызывается
Code: Select all
circle(x,y,radius,color)
Ваш код рисует окружность (а что вы имели в виду - круг или окружность?). Если кому-то нужно нарисовать круг, могу предложить свою функцию:
Code: Select all
fn fcircle($x, $y, $radius, $colour) // Рисует заполненный круг
{
$x = floor($x) // входные аргументы должны быть целочисленными;
$y = floor($y) // если вы уверены, что они не могут случайно оказаться типа float,
$radius = floor($radius) // то можно убрать эти строки.
fbox($x - $radius, $y, $radius * 2 + 1, 1, $colour)
$r2 = $radius + 0.5
$r2 * $r2
$i = 1
while $i <= $radius
{
$w = floor(sqrt($r2 - $i * $i))
fbox($x - $w, $y - $i, $w * 2 + 1, 1, $colour)
fbox($x - $w, $y + $i, $w * 2 + 1, 1, $colour)
$i + 1
}
}