簡體   English   中英

我的簡單行“繪圖”代碼有什么問題?

[英]What's wrong with my simple line 'drawing' code?


我制作了一個簡單的.php文件,該文件應該為我“畫一條線”,用戶可以使用表格為其指定起點和終點。 通過“繪制”,我的意思是告訴您正在着色的像素。 是的,我知道這僅適用於非常特定的行。
這是我的整個文件:

<html>
<head>
    <title>Thing</title>
    <?php
        function positiveLowLine($x,$y,$x0,$x1,$y0,$y1){
            return (($x1–$x0)*$y – ($y1–$y0)*$x – $x1*$y0 + $x0*$y1);
        }
    ?>
</head>
<body>
    <form name="Q1" method="post" action="<?php $_SERVER["PHP_SELF"] ?>">
        <table>
            <tr>
                <td align="right">x0</td>
                <td><input type="number" name="x0" value="<?php echo $_POST["x0"]; ?>"></td>
            </tr>
            <tr>
                <td align="right">x1</td>
                <td><input type="number" name="x1" value="<?php echo $_POST["x1"]; ?>"></td>
            </tr>
            <tr>
                <td align="right">y0</td>
                <td><input type="number" name="y0" value="<?php echo $_POST["y0"]; ?>"></td>
            </tr>
            <tr>
                <td align="right">y1</td>
                <td><input type="number" name="y1" value="<?php echo $_POST["y1"]; ?>"></td>
            </tr>
        </table>
    </form>
    <?php
        if (!empty($_POST)){
            $x0 = $_POST["x0"];
            $x1 = $_POST["x1"];
            $y0 = $_POST["y0"];
            $y1 = $_POST["y1"];

            $y = $y0;
            for($x = $x0;$x <= $x1; $x++){
                echo "Step $x | x=$x | y=$y"
                if (positiveLowLine($x,$y,$x0,$x1,$y0,$y1) < 0){
                    $y++;
                }
            }
        }
    ?>
</body>

我收到錯誤提示說syntax error, unexpected '$x0' (T_VARIABLE) in /file.php on line 6 (這是返回行)的syntax error, unexpected '$x0' (T_VARIABLE) in /file.php on line 6
但是我不明白這是什么問題。

編輯我確實看過這篇文章 (“ PHP解析/語法錯誤;以及如何解決它們?”),但答案對我而言並不存在。 至少我找不到。

您使用了錯誤的減號。 您正在使用 (字符代碼8211),而負號是- (字符代碼45)。 我不知道您如何擁有這種不同的性格,但是更改它會起作用。

<?php
        function positiveLowLine($x,$y,$x0,$x1,$y0,$y1){
            return (($x1 - $x0) * $y - ($y1 - $y0) * $x - $x1 * $y0 + $x0 * $y1);
        }
?>

但隨后它在這里指出了一個錯誤:

for($x = $x0;$x <= $x1; $x++){
    echo "Step $x | x=$x | y=$y"
    if (positiveLowLine($x,$y,$x0,$x1,$y0,$y1) < 0){
        $y++;
    }

您缺少分號; 回聲之后,如果高於。

完整的工作代碼:

<html>
<head>
    <title>Thing</title>
    <?php
        function positiveLowLine($x,$y,$x0,$x1,$y0,$y1){
            return (($x1 - $x0) * $y - ($y1 - $y0) * $x - $x1 * $y0 + $x0 * $y1);
        }
    ?>
</head>
<body>
    <form name="Q1" method="post" action="<?php $_SERVER["PHP_SELF"] ?>">
        <table>
            <tr>
                <td align="right">x0</td>
                <td><input type="number" name="x0" value="<?php echo $_POST["x0"]; ?>"></td>
            </tr>
            <tr>
                <td align="right">x1</td>
                <td><input type="number" name="x1" value="<?php echo $_POST["x1"]; ?>"></td>
            </tr>
            <tr>
                <td align="right">y0</td>
                <td><input type="number" name="y0" value="<?php echo $_POST["y0"]; ?>"></td>
            </tr>
            <tr>
                <td align="right">y1</td>
                <td><input type="number" name="y1" value="<?php echo $_POST["y1"]; ?>"></td>
            </tr>
        </table>
    </form>
    <?php
        if (!empty($_POST)){
            $x0 = $_POST["x0"];
            $x1 = $_POST["x1"];
            $y0 = $_POST["y0"];
            $y1 = $_POST["y1"];

            $y = $y0;
            for($x = $x0;$x <= $x1; $x++){
                echo "Step $x | x=$x | y=$y";
                if (positiveLowLine($x,$y,$x0,$x1,$y0,$y1) < 0){
                    $y++;
                }
            }
        }
    ?>
</body>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM