| | |
| | | {"路径方向", "255,0,0", "arrow"}, |
| | | {"障碍物区域", "255,0,0", "obstacle_fill"}, |
| | | {"割草机位置", "0,150,0", "mow"}, |
| | | {"往返路径", "0,0,0", "railway"}, |
| | | {"割草轨迹", "100,150,200", "trail"} |
| | | }; |
| | | |
| | |
| | | g2d.fillPolygon(xPoints, yPoints, 3); |
| | | break; |
| | | case "mow": |
| | | ImageIcon icon = loadIcon("image/gecaoji.png", size + 8, size + 8); |
| | | if (icon != null) { |
| | | icon.paintIcon(this, g2d, x - 4, y - 4); |
| | | } else { |
| | | g2d.setColor(itemColor); |
| | | g2d.fillOval(x, y, size, size); |
| | | g2d.setColor(new Color(100, 100, 100)); |
| | | g2d.setStroke(new BasicStroke(1)); |
| | | g2d.drawOval(x, y, size, size); |
| | | } |
| | | break; |
| | | case "railway": |
| | | // 1. 绘制底层黑色实线 |
| | | g2d.setColor(Color.BLACK); |
| | | g2d.setStroke(new BasicStroke(3.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); |
| | | g2d.drawLine(x, y + size/2, x + size, y + size/2); |
| | | |
| | | // 2. 绘制顶层白色虚线 |
| | | float dashLen = 3.0f * 2.0f; |
| | | float dashSpace = 3.0f * 2.0f; |
| | | float[] dashPattern = {dashLen, dashSpace}; |
| | | g2d.setColor(Color.WHITE); |
| | | g2d.setStroke(new BasicStroke(1.2f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 10.0f, dashPattern, 0.0f)); |
| | | g2d.drawLine(x, y + size/2, x + size, y + size/2); |
| | | break; |
| | | case "trail": |
| | | g2d.setColor(itemColor); |