Tôi đang cố gắng vẽ 3 mũi tên bên dưới. Tôi có thể vẽ phần trên cùng một cách chính xác nhưng tôi không thể vẽ chính xác 2 đầu mũi tên khác. Tôi đang sử dụng Canvas HTML5 để vẽ các mũi tên này.Vẽ các đường cong đầu mũi tên trong HTML5 Canvas
Sự cố xảy ra với cuộc gọi arcTo của tôi. Tôi chỉ không thể có được đường cong chính xác xảy ra vì một lý do nào đó. Có lẽ tôi nên sử dụng một đường cong Bezier? Có ai có thể cho tôi biết chức năng HTML5/Javascript nào tôi sử dụng để sản xuất các đầu mũi tên trên không?
Bạn có thể cung cấp ví dụ về cách đạt được các mũi tên trên không?
Heres JSFiddle để hiển thị những gì đang diễn sai: http://jsfiddle.net/hJX8X/
<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>
bạn có thể cung cấp một ví dụ (hình ảnh) của các kết quả mong đợi – rkmax
@rkmax tôi đã đăng tải một JSFiddle bây giờ mà chứng tỏ nỗ lực của tôi , đầu mũi tên quá mập mạp –