Bir turnuva dirsek çizimi (PHP & GD)

1 Cevap php

Şu anda benim projelerinden biri için bir turnuva dirsek çizim üzerinde çalışıyorum. Daha küçük parantez çizim çalışıyor görünüyor ama 16 kez olsun onu yukarı hareket başlar.

Bağlantıları sayesinde takip ve sonra 8 yerinin dışına nasıl bakın.

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

Bundan sonra gerçekten ram onun meşru kullanımı beri bir sorun değil ram hataları, çıkmak, ve ben, tabii ki, bu son komut her sayfa yük çalışmaz (bu komut için maximums yükselterek haklı görüntü) önbelleğe alınır.

Her neyse, görüntüler yoluyla ilerleme olmadığını Gördüğünüz gibi, onlar daha kapalı ve daha fazla parça almak gibi.

The code is here: http://pastebin.com/f5485b027 (should I be posting code like this, or inline? I wasn't sure)

Ben tamamen bu düzeltmek için nasıl kaybettim, bu yüzden giriş fikirleri / önerileri lütfen duyuyorum. Ben bir kod çözüm gerekmez, sadece matematik / konumlandırma rehberlik gerekir.

Thanks, Matt

1 Cevap

Parantez "doğru" algoritmasına dayanan çizilir.

Özellikle $ y için sorun durumlarda kod boyunca adım mı?

Ben algo işleri (gerçekten $ TAKEAWAY kullanımını anlamıyorum) nasıl emin değilim.

Ama bu ben ile gelip ne olduğunu:

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...
    }
}