我正在为我的一个项目绘制锦标赛支架。它似乎正在绘制较小的括号,但一旦我达到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错误,这不是真正的问题,因为它合法使用ram,我可以证明提高这个脚本的最大值(当然,它不会运行每个页面加载最终脚本,图像将被缓存)。
无论如何,正如您所看到的那样,如果您在图像中前进,它们似乎越来越偏离轨道。
代码在这里: http://pastebin.com/f5485b027 (我应该发布这样的代码,还是内联?我不确定)
我完全迷失了如何解决这个问题,所以请输入想法/建议。我不需要代码解决方案,我只需要有关数学/定位的指导。
谢谢, 马特
答案 0 :(得分:1)
根据算法“正确”绘制括号。
您是否逐步完成了问题案例的代码,尤其是$ y?
我不确定算法是如何工作的(不太了解$ takeAway的用法)。
但这就是我想出的:
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...
}
}