Tôi có hai điểm tròn và trung tâm của vòng tròn này. Tôi muốn vẽ một vòng cung giữa các điểm này. Phương pháp drawArc
là đơn giản và không phù hợp với mục đích của tôi. Có ai giúp không?Vẽ vòng cung với 2 điểm và giữa vòng tròn
Trả lời
Graphics.drawArc
hy vọng các thông số sau:
- x
- y
- rộng
- chiều cao
- startAngle
- arcAngle
Với điểm bắt đầu và điểm kết thúc của bạn, bạn có thể tính toán một hộp giới hạn nơi hình cung sẽ được vẽ. Điều này cung cấp cho bạn đủ thông tin để cung cấp các thông số: x, y, chiều rộng và chiều cao.
Bạn chưa chỉ định góc mong muốn để tôi đoán bạn có thể chọn một tùy ý.
Bạn có thể sử dụng Canvas.drawArc, nhưng bạn phải tính toán các tham số cần thiết:
Cho phép nói rằng trung tâm của vòng tròn là (x0, y0) và rằng arc chứa hai điểm của bạn (x1, y1) và (x2, y2). Khi đó bán kính là: r = sqrt ((x1-x0) (x1-x0) + (y1-y0) (y1-y0)). Vì vậy:
int r = (int)Math.sqrt((x1-x0)*(x1-x0) + (y1-y0)*(y1-y0));
int x = x0-r;
int y = y0-r;
int width = 2*r;
int height = 2*r;
int startAngle = (int) (180/Math.PI*atan2(y1-y0, x1-x0));
int endAngle = (int) (180/Math.PI*atan2(y2-y0, x2-x0));
canvas.drawArc(x, y, width, height, startAngle, endAngle);
Chúc may mắn!
FYI: Mã này sẽ hoạt động tốt hơn một chút nếu bạn sử dụng 'float' thay vì' int' variables. PI = 3.14, Square Roots, vv Bạn có thể tạo nhiều số 0 nếu bạn gắn bó với các kiểu 'int'. – jp2code
theo lý thuyết có. tuy nhiên, drawArc() có tham số int. – botismarius
Điều này hoạt động hoàn hảo trong C# cho tôi..Cảm ơn! – Abhishek
- 1. Vẽ 2 vòng tròn trên vải
- 2. Vòng tròn vẽ iOS
- 3. vòng tròn Vẽ với System.Drawing
- 4. Python, Vẽ một vòng tròn với PIL
- 5. Đếm tổng số điểm trong 2 vòng tròn
- 6. vẽ một vòng tròn bán kính R quanh một điểm
- 7. Vẽ vòng tròn Antialiased bằng Shaders
- 8. Vẽ vòng tròn bán đầy đủ
- 9. Làm thế nào để vẽ một vòng tròn với các tiêu điểm mờ dần ở giữa với HTML5 Canvas?
- 10. Vẽ một vòng tròn có bán kính và các điểm xung quanh cạnh
- 11. Làm thế nào để vẽ một vòng tròn với một minh bạch giữa
- 12. Vẽ đường viền của các vòng tròn giao nhau
- 13. Vẽ một vòng tròn trên vải bằng sự kiện chuột
- 14. Tìm tất cả các điểm chung cho hai vòng tròn
- 15. vẽ hai vòng tròn bằng cách sử dụng Quartz CGContextFillEllipseInRect
- 16. vẽ hình vòng cung dập nổi bằng đồ họa lõi
- 17. Dự đoán va chạm vòng kết nối vòng tròn
- 18. Vòng tròn vẽ Android xung quanh Văn bản
- 19. Vòng tròn đồng tâm R ggplot2/ggmap là các điểm
- 20. geoserver - Làm thế nào để vẽ một đường đo đạc đại diện cho vòng tròn lớn giữa hai điểm
- 21. C++ Thuật toán dòng của Bresenham vẽ vòng cung và xoay
- 22. Vòng tròn lô với giá trị alpha trong MATLAB
- 23. Làm thế nào để vẽ một vòng tròn trong suốt?
- 24. Vẽ một vòng tròn trên một hình ảnh hiện có
- 25. vẽ một vòng tròn đã điền đầy đủ
- 26. Vẽ văn bản trong lớp phủ vòng tròn
- 27. Làm cách nào để xóa vòng cung hoặc vòng tròn trong canvas HTML5?
- 28. Làm thế nào để vẽ chỉ phần này của vòng cung?
- 29. Tìm điểm trên vòng tròn có điểm trung tâm, bán kính và độ
- 30. Đang cố gắng tính toán góc giữa hai điểm trên một vòng tròn?
Đây có phải là bài tập về nhà không? Nếu có, vui lòng gắn thẻ như vậy. – javamonkey79
Tôi biết rằng có các chức năng mạnh mẽ để vẽ Arc, nhưng tôi không thể fint phù hợp – CarolusPl