3

私はphpで線を作成していて、これまでのところうまく表示されていますが、今私が得ている問題は、線が滑らかではなく、切れ端として表示されていることです。半径線を作成するためのコードは次のとおりです。

function draw_radius($img, $x1, $y1, $radius, $angle, $arrow_color, $arrow_length = 10, $arrow_width = 3)
{
    $x2 = $x1 + $radius * cos(deg2rad($angle-90));
    $y2 = $y1 + $radius * sin(deg2rad($angle-90));
    imageline($img, $x1, $y1, $x2, $y2, $arrow_color);

    $distance = sqrt(pow($x1 - $x2, 2) + pow($y1 - $y2, 2));
    $dx = $x2 + ($x1 - $x2) * $arrow_length / $distance;
    $dy = $y2 + ($y1 - $y2) * $arrow_length / $distance;
    $k = $arrow_width / $arrow_length;
    $x2o = $x2 - $dx;
    $y2o = $dy - $y2;
    $x3 = $y2o * $k + $dx;
    $y3 = $x2o * $k + $dy;
    $x4 = $dx - $y2o * $k;
    $y4 = $dy - $x2o * $k;
    imageline($img, $x1, $y1, $dx, $dy, $arrow_color);
    imageline($img, $x3, $y3, $x4, $y4, $arrow_color);
    imageline($img, $x3, $y3, $x2, $y2, $arrow_color);
    imageline($img, $x2, $y2, $x4, $y4, $arrow_color);


}

以下は、線を引くコンパスの例です。

コンパスの例http://img246.imageshack.us/img246/6329/compassx.png

4

4 に答える 4

2

アンチエイリアシングを備えた画像処理ライブラリを使用する必要があります。テクニックの説明。どのライブラリを使用すべきかについての提案はありません。画像処理にPHPを使用していません。

于 2010-02-21T20:17:44.917 に答える
2

GDでアンチエイリアシングを自分で試したことはありませんが、そこにあるようです...

http://uk.php.net/manual/en/function.imageantialias.php

于 2010-02-21T20:22:31.617 に答える
1

あなたはこれを試すことができますが、彼らの例を見ると、それは素晴らしいようには見えません。コメントで試すことができる他のいくつかのオプションがあります。

于 2010-02-21T20:19:34.560 に答える
0

カイロはアンチエイリアシングをうまく行います。

于 2010-02-22T00:08:22.850 に答える