Home > Blockchain >  make cartesian coordinate with for-loop in php
make cartesian coordinate with for-loop in php

Time:11-08

i'm trying to make cartesian coordinate for my coursework and can only get here, I'm grateful if anyone can help me to fix this "0" line

<?php
$n=10;
for($i=-10;$i<=$n;$i  ){
    for($j=-10;$j<=$n;$j  ){
        if($i==0 || $j==0){
            echo " $i ";
        }   else {
                echo "   ";
            }
        
    }
    echo "\n";
}

Current output What i expected

CodePudding user response:

You can try this in mode console. But it's not really readable

But the principle is there

$n=10;

for($y=$n;$y>-$n;$y--)
{
    for($x=-$n;$x<=$n;$x  )
    {
        $infoDisplay = "  ";

        if($x==0)   $infoDisplay = $y;
        if($y==0)   $infoDisplay = $x;

        echo $infoDisplay;
    }

    echo "\n";
}

CodePudding user response:

You could reserve a grid. "Draw" the axis and print it out.

$size = 10;
$grid = array_fill(0, $size * 2   1, array_fill(0, $size * 2   1, ''));

for ($x = -$size; $x <= $size;   $x) {
    $grid[$size][$x   $size] = $x;
    $grid[$x   $size][$size] = $x;
}

foreach ($grid as $row) {
    foreach ($row as $cell) {
        $cell === '' ? print '    ' : printf('% 3d ', $cell);
    }
    echo PHP_EOL;
}

Output

                                        -10                                         
                                         -9                                         
                                         -8                                         
                                         -7                                         
                                         -6                                         
                                         -5                                         
                                         -4                                         
                                         -3                                         
                                         -2                                         
                                         -1                                         
-10  -9  -8  -7  -6  -5  -4  -3  -2  -1   0   1   2   3   4   5   6   7   8   9  10 
                                          1                                         
                                          2                                         
                                          3                                         
                                          4                                         
                                          5                                         
                                          6                                         
                                          7                                         
                                          8                                         
                                          9                                         
                                         10                                         
  • Related