我要畫兩個點之間的簡單曲線。更具體地說,任意大小的圖像的左上角和右下角。繪製兩點之間的曲線在PHP
我試過使用imagearc,但顯然這不是我要找的。 爲了說明我的意思:
我找不到任何功能,幫我一起,所以任何幫助,將不勝感激:)
我要畫兩個點之間的簡單曲線。更具體地說,任意大小的圖像的左上角和右下角。繪製兩點之間的曲線在PHP
我試過使用imagearc,但顯然這不是我要找的。 爲了說明我的意思:
我找不到任何功能,幫我一起,所以任何幫助,將不勝感激:)
我解決它使用imagearc畢竟創建自己的曲線。
訣竅是設置左下角爲中心,-90°起始角,0°結束角度和圖像大小的兩倍:
//GET VARS
$width = $_GET['width'];
$height = $_GET['height'];
//CREATE IMGS
$image = imagecreatetruecolor($width, $height);
$color = imagecolorallocate($image, 255, 0, 0);
imagearc( $image,
0, 0, //center point = bottom-left corner
$width*2, $height*2, //size = image size * 2
-90, //top left
0, //bottom right
$color);
//OUTPUT IMAGE
header('Content-Type: image/png');
imagepng($image);
//DESTROY IMAGE
imagedestroy($image);
看起來像這樣: http://www.schizosplayground.com/pers/curvedlinetest.php?width=132&height=163
你可以使用ImageMagick的,而不是圖像GD的。 Image gd沒有內置的曲線支持。
如果你沒有使用ImageMagick的可能性,你仍然可以使用imagesetpixel
並用一個簡單的德卡斯特里奧算法
我通過經由任何方便易函數生成與點($多邊形)的載體解決類似的問題,然後畫了線其間的點:
$numberofpoints=count($polygon)/2-1; // XY coordinates, so points is just half and subtracting the end point
for ($i=0; $i < $numberofpoints;$i++) {
imageline($image, $polygon[2*$i], $polygon[2*$i+1], $polygon[2*$i+2], $polygon[2*$i+3], $Color); // connect two consecutive points with a line
}
是否有貝塞爾曲線函數? ['canvas'有它(http://jsfiddle.net/zzV2T/) – alex 2013-05-09 23:44:04
看看你是否能找到一個貝塞爾曲線函數/庫:http://cubic-bezier.com/#.34,.81 ,. 65 0.15 – Patashu 2013-05-09 23:45:44