如何通过算法为桌子中心的圆形着色?

时间:2011-10-14 23:07:32

标签: javascript jquery html algorithm math

我有一张桌子,我想在中心为一个圆圈着色。

圆形的大小应取决于阵列的大小。

我已经对轴i和j的直径进行了着色,但我当时就卡住了。

那么如何完成这一轮?

演示: http://jsfiddle.net/pJt7x/4/

当前的JavaScript:

var X = 20;
var X2 = X/2;
var X22 = X2/2;

for (i=0; i<=X; i++) {
    $('table').append('<tr>');

    for (j=0; j<=X; j++)
        ((i==X2 && j>=X22 && j<=X2+X22) ||
            (j==X2 && i>=X22 && i<=X2+X22)) ?
                        $('tr:last').append('<td class="x"></td>') : 
                            $('tr:last').append('<td></td>');

    $('table').append('</tr>'); 
}

预期结果:

20x20

1 个答案:

答案 0 :(得分:5)

var X = 20;
var X2 = X / 2;
var X22 = X2 / 2;

for (i = 0; i <= X; i++) {
    $('table').append('<tr>');
    for (j = 0; j <= X; j++) {
        ((i == X2 && j >= X22 && j <= X2 + X22) 
          || (j == X2 && i >= X22 && i <= X2 + X22) 
          || (Math.abs(i - X2) + Math.abs(j - X2) <= X22))

           ? $('tr:last').append('<td class="x"></td>') : $('tr:last').append('<td></td>');
          }
       }
    $('table').append('</tr>');

Example here