Дуга рисует с недостатками

Это мой php файл (arc.php) которая должна давать толстую половину дуги:

<?php
$img = imagecreatetruecolor(2000, 1000);
$white = imagecolorallocate($img, 255, 255, 255);
imagesetthickness($img, 200);
imagearc($img, 1000, 1000, 1900, 1900,  180, 360, $white);
imagepng($img);
imagedestroy($img);

Изображение генерируется через cli:

php arc.php > arc.png

Пока все хорошо … Теперь, кто-нибудь знает, почему я вижу эти недостатки на изображении.

введите описание изображения здесь

2

Решение

комментарии в документации за imagesetthickness кажется, подразумевают, что эллипсы и дуги не очень хорошо работают с настройками толщины. Является ли это ошибка или особенность спорны. Несмотря на это, предлагаемый обходной путь использует небольшую толщину и многократно рисует форму все больше и больше.

В вашем случае это будет выглядеть примерно так:

<?php
$img = imagecreatetruecolor(2000, 1000);
$white = imagecolorallocate($img, 255, 255, 255);

// Slightly thicker than 1 pixel to compensate pixel aliasing
imagesetthickness($img, 2);

$thickness = 200;
for ($i = $thickness; $i > 0; $i--) {
imagearc($img, 1000, 1000, 1900 - $i, 1900 - $i,  180, 360, $white);
}

imagepng($img);
imagedestroy($img);

Который генерирует следующее изображение:введите описание изображения здесь
Вероятно, вам нужно будет немного скорректировать результаты, но этого должно быть достаточно, чтобы начать работу по правильному пути.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]