php görüntü ok çizgisi düzgün olması gerekir

4 Cevap php

im php bir çizgi yapmak ve şimdiye kadar ince gösteren, ama ne sorun im şimdi alıyorum çizgi pürüzsüz olmak değil, bu kenarları kırılma olarak gösterir. Aşağıdaki yarıçap hattını yapmak için kodu:

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);


}

Aşağıdaki üzerinde çizgi çizimi, hangi im pusula örnektir.

compass example

4 Cevap

GD anti-aliasing kendim denedim, ama orada gibi görünüyor değil mi ...

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

Eğer anti-aliasing sahip bir görüntü işleme kütüphanesi kullanmanız gerekir. An explanation of the technique. Ben kullanmak hangi kütüphane için hiçbir öneri var: Ben görüntü işleme için PHP kullanmayın.

Sen this deneyebilirsiniz, ancak onların örnek oluyor, o büyük görünmüyor. Eğer yorumlarda deneyebilirsiniz birkaç seçenek vardır.

cairo iyi antialiasing gelmez.