2011-10-05 23 views
6

Tôi cần truy xuất tọa độ X/Y ở cuối đường dẫn được vẽ trong Raphael. Tôi đã tìm thấy một cách hoạt động bằng cách nhìn vào đường dẫn sau đó trong các trình duyệt SVG nhưng cách tiếp cận này không hoạt động trong các trình duyệt VML.Vị trí X/Y của điểm cuối đường dẫn trong Raphael

Ví dụ:

var paper = Raphael('canvas', 200, 200); 
var p = paper.path(['M', 10, 10, 'l', 30, 30, 'a', 20, 30, 0, 1, 0, 40, 10, 'a', 20, 30, 0, 1, 0, 40, 10, 'l', -15, -18]); 
var lastP = p.attrs.path[p.attrs.path.length - 1]; 
paper.circle(lastP[lastP.length - 2], lastP[lastP.length - 1], 3); 

http://jsfiddle.net/sY4Up/1/

Trong Chrome, một vòng tròn được vẽ tại các thiết bị đầu cuối thông qua con đường mẫn. Trong IE 6/7/8, vòng tròn không vẽ vì định nghĩa đường dẫn không bị phân tách/chuẩn hóa.

Trả lời

8

sử dụng getPointAtLength và getTotalLength để tìm vị trí.

window.onload = function() { 
var paper = Raphael('canvas', 200, 200); 
var p = paper.path(['M', 10, 10, 'l', 30, 30, 'a', 20, 30, 0, 1, 0, 40, 10, 'a', 20, 30, 0, 1, 0, 40, 10, 'l', -15, -18]); 
var lastP = p.attrs.path[p.attrs.path.length - 1]; 
paper.circle(lastP[lastP.length - 2], lastP[lastP.length - 1], 3); 

var pt = p.getPointAtLength(p.getTotalLength()); 
paper.circle(pt.x,pt.y,10); 

};

+0

Đơn giản và thanh lịch. Cảm ơn! – bjaxbjax

Các vấn đề liên quan