Aşağıdaki 3 okları çizmeye çalışıyorum. Üst kısmı doğru çizebilirim ama diğer 2 ok başlığını doğru çizemiyorum. Bu okları çizmek için HTML5 Canvas kullanıyorum.Çizim Ok Başı Eğriler HTML5 Canvas
sorun benim arcTo çağrılarıyla oluşur. Bir sebepten dolayı doğru eğriyi alamıyorum. Belki bir Bezier eğrisi kullanmalıyım? Yukarıdaki ok başlarını üretmek için hangi HTML5/Javascript işlevlerinin kullandığımı bana söyleyebilir mi?
Yukarıdaki ok başlarına nasıl erişeceğinize dair bir örnek verebilir misiniz?
İşte JSFiddle yanlış whats going göstermek için:
<canvas id="testCanvas" width="400px" height="400px">
</canvas>
<script type="text/javascript">
<!--
var canvas = document.getElementById("testCanvas");
var dc = canvas.getContext("2d");
// Points which are correct (when I draw straight lines its a perfect arrow
var width = 400;
var height = 100;
var arrowW = 0.35 * width;
var arrowH = 0.75 * height;
var p1 = {x: 0, y: (height-arrowH)/2};
var p2 = {x: (width-arrowW), y: (height-arrowH)/2};
var p3 = {x: (width-arrowW), y: 0};
var p4 = {x: width, y: height/2};
var p5 = {x: (width-arrowW), y: height};
var p6 = {x: (width-arrowW), y: height-((height-arrowH)/2)};
var p7 = {x: 0, y: height-((height-arrowH)/2)};
dc.clearRect(0, 0, canvas.width, canvas.height);
dc.fillStyle = "#FF0000";
dc.beginPath();
dc.moveTo(p1.x, p1.y);
dc.lineTo(p2.x, p2.y);
dc.lineTo(p3.x, p3.y);
dc.moveTo(p3.x, p3.y);
dc.arcTo(p3.x, p3.y, p4.x, p4.y, 50);
dc.moveTo(p4.x, p4.y);
dc.arcTo(p4.x, p4.y, p5.x, p5.y, 50);
dc.moveTo(p5.x, p5.y);
dc.lineTo(p6.x, p6.y);
dc.lineTo(p7.x, p7.y);
dc.closePath();
dc.fill();
/* Draw arrow without curves
dc.moveTo(p1.x, p1.y);
dc.lineTo(p2.x, p2.y);
dc.lineTo(p3.x, p3.y);
dc.lineTo(p4.x, p4.y);
dc.lineTo(p5.x, p5.y);
dc.lineTo(p6.x, p6.y);
dc.lineTo(p7.x, p7.y);
*/
-->
</script>
ben bir JSFiddle gönderdiniz @rkmax beklenen sonuçların – rkmax
bir örneğini (resim) sağlayabilir şimdi bu benim girişimi gösteriyor , ok başı çok çömelti –