Q
在線算法繪製箭頭
13
A
回答
20
這裏有一個函數在點p處繪製一個箭頭。你可以將它設置到你的線的中點。 dx和dy是線方向,由(x1 - x0,y1 - y0)給出。這會給出一個縮放到行長度的箭頭。如果您希望箭頭始終具有相同的大小,請將此方向標準化。
private static void DrawArrow(Graphics g, Pen pen, Point p, float dx, float dy)
{
const double cos = 0.866;
const double sin = 0.500;
PointF end1 = new PointF(
(float)(p.X + (dx * cos + dy * -sin)),
(float)(p.Y + (dx * sin + dy * cos)));
PointF end2 = new PointF(
(float)(p.X + (dx * cos + dy * sin)),
(float)(p.Y + (dx * -sin + dy * cos)));
g.DrawLine(pen, p, end1);
g.DrawLine(pen, p, end2);
}
+2
如何調整箭頭的大小?我喜歡根據線條的長度來設置它,但目前我的應用程序中箭頭大小與線條大小的比例不正確。 – renosis 2013-02-01 18:49:23
11
這是一種將箭頭添加到一行的方法。 你只需要給它你的箭頭和尾巴的座標。
private static void drawArrow(int tipX, int tailX, int tipY, int tailY, Graphics2D g)
{
int arrowLength = 7; //can be adjusted
int dx = tipX - tailX;
int dy = tipY - tailY;
double theta = Math.atan2(dy, dx);
double rad = Math.toRadians(35); //35 angle, can be adjusted
double x = tipX - arrowLength * Math.cos(theta + rad);
double y = tipY - arrowLength * Math.sin(theta + rad);
double phi2 = Math.toRadians(-35);//-35 angle, can be adjusted
double x2 = tipX - arrowLength * Math.cos(theta + phi2);
double y2 = tipY - arrowLength * Math.sin(theta + phi2);
int[] arrowYs = new int[3];
arrowYs[0] = tipY;
arrowYs[1] = (int) y;
arrowYs[2] = (int) y2;
int[] arrowXs = new int[3];
arrowXs[0] = tipX;
arrowXs[1] = (int) x;
arrowXs[2] = (int) x2;
g.fillPolygon(arrowXs, arrowYs, 3);
}
+0
非常感謝你......你節省了我很多時間...... – 2012-05-03 16:35:43
相關問題
- 1. 繪製曲線SVG箭頭線的div
- 2. 用CGContext繪製三角形/箭頭線
- 3. 使用Javascript線繪製箭頭至
- 4. 用Java中的箭頭繪製線條
- 5. 在android中繪製箭頭頭
- 6. 使用線斜率在線的終點繪製箭頭
- 7. 繪製帶箭頭的曲線線在機器人畫布
- 8. 動態繪製箭頭android
- 9. 用gnuplot繪製箭頭
- 10. 容易箭頭繪製
- 11. Android drawable xml:繪製箭頭
- 12. 繪製箭頭與輪廓
- 13. JavaFX線/箭頭箭頭
- 14. 如何使用箭頭鍵繪製線條(線段)?
- 15. 在窗體上動態繪製箭頭
- 16. Android:在畫布上繪製ASCII箭頭
- 17. Python Tkinter:在標籤內繪製箭頭
- 18. 在vC++中繪製箭頭mfc
- 19. 在opengl中繪製一個箭頭ES
- 20. 直接在matplotlib圖上繪製箭頭
- 21. 在列表之間繪製箭頭
- 22. 如何在R中繪製3D箭頭?
- 23. 如何在MatheMatica中繪製Arrow箭頭?
- 24. 在PictureBox中繪製矩形或箭頭()
- 25. 在Pygame中繪製一個箭頭
- 26. 在iOS中繪製箭頭背後的數學運算
- 27. 如何繪製帶箭頭線的在端
- 28. 使用谷歌地圖在多段線中繪製箭頭V2
- 29. 在Javascript中繪製一條帶箭頭的直線
- 30. 如何使用Highcharts在線圖上繪製箭頭?
這是一個箭頭指向一條線的中間?還是從它來?或者是沿着這條線的箭頭? – 2010-06-09 23:58:28
一個沿線。 – nunos 2010-06-10 01:17:01