2011-01-17 42 views
9

Tôi cần kết nối ba điểm bằng một đường cong trơn tru. Tôi đã xem xét các câu hỏi tương tự đã được trả lời trên StackOverflow nhưng tất cả đều đề xuất sử dụng Path.quadTo(). Tôi không hiểu tại sao điều này được coi là một câu trả lời đúng vì đường cong Bezier chỉ tiến tới điểm giữa (kiểm soát) nhưng không đi qua nó. Trong trường hợp của tôi, tôi phải đi chính xác qua nó. Vậy làm thế nào tôi có thể đạt được điều đó?Làm thế nào để vẽ một đường cong qua các điểm cây trong Android?

Trả lời

4

Đúng, những gì bạn cần là các chuỗi Spol Catmull Rom được bảo đảm đi qua từng điểm. Tuy nhiên, tôi không biết bất kỳ chức năng nào trong API Android để vẽ chúng. Bạn cũng có thể "lừa" chức năng quadTo và chuyển nó vào một điểm giữa ảo mà bạn tính theo điểm hiện tại và điểm tiếp theo.

+1

Cám ơn một đầu mối , Tôi đã tìm kiếm trên Internet kỹ lưỡng và đã kết thúc bằng tính toán điểm kiểm soát sau cho quadTo: // nội suy ba điểm với điểm thứ hai tại giá trị tham số được chỉ định int [] nội suy (int x0, int y0, int x1, int y1, int x2, int y2, double t) { double t1 = 1.0 -t; double tSq = t * t; denom đôi = 2.0 * t * t1; \t int cx = (int) ((x1 - t1 * t1 * x0 - tSq * x2)/denom); int cy = (int) ((y1 - t1 * t1 * y0 - tSq * y2)/denom); \t trả về int mới [] {cx, cy}; } –

+1

@AndreyNovikov bạn nên đăng nó làm câu trả lời để giúp người khác – Sameer

-1

Here là rất tốt đẹp, howto minh họa cho javascript, nhưng tất cả các phương pháp được sử dụng là bình thường và có một tương tự trong Androids Path Class

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