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
Đú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.
Điều gì về hàm cubicTo (hoặc rCubicTo nếu bạn cần nó từ một điểm tương đối)? http://developer.android.com/reference/android/graphics/Path.html#cubicTo(float, float, float, float, float, float)
cubicTo cũng sử dụng các đường cong Bezier, không cung cấp những gì anh ta cần. –
Mất 3 điểm. – C0deAttack
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
- 1. Làm thế nào để vẽ một đường cong mịn đi qua một số điểm
- 2. Vẽ một đường cong hoàn hảo kết nối ba điểm
- 3. Làm thế nào để vẽ đường cong bezier bằng nhiều điểm?
- 4. Làm thế nào để sử dụng chức năng đường chéo D3 để vẽ các đường cong?
- 5. Làm thế nào để vẽ một đường cong mịn trong WPF?
- 6. Làm thế nào để sử dụng đường cong hàm trong [R] để vẽ đồ thị đường cong bình thường?
- 7. Vẽ một đường cong Bezier giữa một tập hợp các điểm nhất định
- 8. Làm thế nào để vẽ một đường cong Bezier lập trình trong WPF?
- 9. Vẽ đường cong Hermite trong OpenGL
- 10. libsvm để vẽ đường cong ROC
- 11. Vẽ nhiều đường cong Bootstrap trong R
- 12. Cách tính điểm gần nhất của đường và đường cong? .. hoặc đường cong và đường cong?
- 13. Làm thế nào để tôi làm mịn các đường cong (đường nét) trong OpenCV?
- 14. Vẽ một phong bì xung quanh một đường cong
- 15. Cách vẽ các đường cong mượt mà trong R
- 16. Làm thế nào tôi có thể vẽ một bóng cong?
- 17. Vẽ các đường cong đầu mũi tên trong HTML5 Canvas
- 18. Tạo một đường cong spline giữa 2 điểm trong Three.js
- 19. Làm thế nào để vẽ đường cong Bezier với mã Javascript gốc mà không cần ctx.bezierCurveTo?
- 20. Làm thế nào để vẽ cây gia đình trong R
- 21. Cách vẽ NSString trên đường cong?
- 22. WPF Animation - Điểm động Bezier đường cong
- 23. Làm thế nào để vẽ một đường với Cocos2d-iPhone
- 24. Sử dụng đường cong Bezier để vẽ hình xoắn ốc
- 25. Làm thế nào để kết nối các đường cong discontinous trong matplotlab, scipy, hoặc vv
- 26. Algorithm cho nén điểm đường cong elliptic
- 27. Vẽ đường cong bezier đứt quãng trong QML
- 28. Làm thế nào để vẽ một con đường thông suốt từ điểm đầu đến điểm kết thúc trong D3.js
- 29. Làm thế nào để vẽ một đường dẫn một phần trong canvas của HTML5?
- 30. Làm thế nào tôi có thể vẽ một đường cong thay đổi độ dày dọc theo đường đi của nó?
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}; } –
@AndreyNovikov bạn nên đăng nó làm câu trả lời để giúp người khác – Sameer