отображение динамического восьмиугольника с использованием PHP

Привет, сообщество Stackoverflow,

для небольшой игры мне нужно отобразить восьмиугольник (как этот)

Форма адаптируется к определенным значениям, которые я получаю из базы данных. Моя проблема в том, что я совершенно не знаю, как запустить его. Я не знаю формулы для своей цели и не знаю, как нарисовать такую ​​фигуру в PHP.

В целом я относительно хорошо разбираюсь в PHP. Так что буду рад теоретическим подходам к решению, а не обязательно коду =)

заранее спасибо


person Thomas    schedule 07.04.2011    source источник
comment
гугл твой друг мой друг :-)   -  person Naftali aka Neal    schedule 08.04.2011
comment
@Neal Сначала я попробовал Google =) Ничего не нашел по этой теме. Не могли бы вы мне подсказать =D?   -  person Thomas    schedule 08.04.2011


Ответы (3)


Взбил это. Он уже рассчитывает координаты за вас, но вы можете легко указать свои собственные координаты в массиве $vertices (и удалить генерацию).

<?php
$radius = 100;
$sides = 8;

$points = array();
for ($i = 1; $i <= $sides; $i++) {
    $points[] = round( $radius * cos($i*2 * pi() / $sides) + $radius );  // x
    $points[] = round( $radius * sin($i*2 * pi() / $sides) + $radius );  // y
}



// Draw the image.
$im = imagecreate($radius*2 + 10, $radius*2 + 10);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

imagefill($im, 0, 0, $white);  // White background

imagefilledpolygon($im, $points, $sides, $black);

header('Content-type: image/png');
imagepng($im);
person simshaun    schedule 07.04.2011

Я не могу дать вам формулу для этого, но как только вы ее вычислите, вы сможете использовать GD и нарисуйте свою фигуру.

person halfdan    schedule 07.04.2011

API Google Charts Поддерживает это и довольно прост в использовании. Пример

person Oliver O'Neill    schedule 07.04.2011