Browse Source

画坐标与房间

duh 6 years ago
parent
commit
4d86c49488

+ 4 - 2
src/main/java/controller/MyPanel.java

@@ -43,12 +43,14 @@ public class MyPanel extends JPanel{
     private void drawAxis(Config config,Graphics g){
         Axis axis = new Axis();
         AxisConfig axisConfig = config.getAxisPoint();
-        axis.setX(axisConfig.getX());
-        axis.setY(axisConfig.getY());
+        //ModuleInAxis已设置坐标轴的偏转
+        axis.setX(0);
+        axis.setY(0);
         axis.setxLength(axisConfig.getLength());
         axis.setyLength(axisConfig.getWidth());
         axis.setxSpacing(axisConfig.getxSpacing());
         axis.setySpacing(axisConfig.getySpacing());
+        System.out.println("axis3 x="+axis.getX());
         axis.drawSelf(g);
     }
     private void drawTemplate(RoomConfig room, Graphics g) {

+ 2 - 0
src/main/java/model/Axis.java

@@ -22,6 +22,8 @@ public class Axis  extends ModuleInAxis {
         int axisX = x;
         int axisY = y;
         g2d.drawString("0",axisX,axisY+10);
+        //画坐标点
+        g2d.drawString(x+","+y,axisX,axisY+20);
         drawXAxis(axisX,axisY,xLength,g2d);
         drawYAxis(axisX,axisY,yLength,g2d);
         g2d.dispose();

+ 10 - 0
src/main/java/model/ModuleInAxis.java

@@ -20,6 +20,16 @@ public abstract class ModuleInAxis {
     //旋转角度
     protected int scale;
 
+    /**
+     * 匹配坐标系
+     */
+    public void matchAxis(){
+        System.out.println("match before:"+x+","+y+",axis x="+axisPointConfig.getX()+",y="+axisPointConfig.getY());
+        x += axisPointConfig.getX();
+        y = axisPointConfig.getY()-y;
+        System.out.println("match end:"+x+","+y);
+    }
+
     public static AxisConfig getAxisPointConfig() {
         return axisPointConfig;
     }

+ 2 - 1
src/main/java/model/Room.java

@@ -24,12 +24,13 @@ public class Room extends ModuleInAxis {
 
     @Override
     public void drawSelf(Graphics g) {
+        matchAxis();
         Graphics2D g2d = (Graphics2D) g.create();
         g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
         g2d.setColor(Color.GRAY);
         // 1. 绘制一个矩形: 起点(30, 20), 宽80, 高100
         g2d.drawString(x+","+y,x,y);
-        g2d.drawRect(x, y, width, length);
+        g2d.drawRect(x, y-width, length, width);
         g2d.dispose();
     }
 

+ 1 - 1
src/main/resources/config.yml

@@ -10,7 +10,7 @@ axisPoint:
 room:
   length: 2800
   width: 2000
-  #相对于整个画面接入点
+  #相对于坐标轴接入点
   x: 20
   y: 20
 #门