Вопрос

В настоящее время я работаю над рисованием турнирного кронштейна для одного из моих проектов. Похоже, работает рисовать меньшие скобки, но как только я доберусь до 16, он начинает действовать вверх.

Следуйте по ссылкам и посмотрите, как он выпадает из этого после 8.

http://www.mattdsworld.com/mmaplayer/index.php/tournament/viewbracket/2.

http://www.mattdsworld.com/mmaplayer/index.php/tournament/viewbracket/4.

http://www.mattdsworld.com/mmaplayer/index.php/tournament/viewbracket/8.

http://www.mattdsworld.com/mmaplayer/index.php/tournament/viewbracket/16.

http://www.mattdsworld.com/mmaplayer/index.php/tournament/viewbracket/32.

http://www.mattdsworld.com/mmaplayer/index.php/tournament/viewbracket/64.

http://www.mattdsworld.com/mmaplayer/index.php/tournament/viewbracket/128.

После этого я выхожу из ошибок RAM, что не является проблемой с момента его законного использования оперативной памяти, и я могу оправдать повышение максимумов для этого сценария (конечно, он не будет запускать каждую страницу в конечном скрипте, Изображение будет кэшировано).

В любом случае, как вы можете посмотреть, прогрессируете ли вы через изображения, они, кажется, получают все больше и больше.

Код здесь:http://pastebin.com/f5485b027.(Должен ли я быть в курсе как это, или встроенный? Я не был уверен)

Я полностью потерян как для того, как это исправить, поэтому, пожалуйста, введите идеи / предложения. Мне не нужно решение кода, мне просто нужно руководство по математике / позиционированию.

Спасибо, Мэтт

Это было полезно?

Решение

Кронштейны «правильно», нарисованные на основе алгоритма.

Вы вышли через код для проблемных случаев, особенно для $ y?

Я не уверен, как работает алговые работы (на самом деле не понимают использование $ вынос).

Но это то, что я придумал:

for ($k = 1; $k < ($rounds + 1); $k++)
{
    // Calculate currLeftDraw and currRightDraw Here...

    $spacing = 60 * pow(2, ($k - 1));
    $firstY = ($spacing / 2) - 30;

    for ($i = 0; $i < ($sizePlayers / (pow(2, $k))); $i++)
    {
        $yPos = $firstY + ($i * $spacing);

        // Rest of code here...
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top