矩形网格绘制

矩形网格绘制

没有找到具体的定义网格的方式,放一个图片吧。

矩形网格绘制_第1张图片

Wikipedia上网格的定义

绘制要求

本次案例规定网格起始点(0,0) ,每一个方块大小为1*1,x轴正方向5个,y轴正方向6个

矩形网格绘制_第2张图片

绘图思路

  1. 计算第一个矩形的坐标。
  2. 先绘制一列(y轴方向)或者一行(x轴方向)
  3. 在绘制基础上向另一个坐标轴反向偏移
  4. 如果要计算椭球的只需要找到相对应椭球的描述公式进行计算点坐标即可

本次绘图中从左下角开始

每一个点的坐标计算是 x:(基准点 + 第几行 x 间距 ) y : ( 基准点 + 第几列 X 间距)

package com.huifer.planar.aset.utils.geo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryFactory;
import org.locationtech.jts.geom.Point;
import org.locationtech.jts.io.WKTReader;

/**
 * 

Title : McGrid

*

Description :

* * @author huifer * @date 2019-03-08 */
public class McGrid { public static void main(String[] args) throws Exception{ // 绘制左下角的第一个矩形 RecPoint zuoxia = new RecPoint(0, 0); RecPoint zuoshang = new RecPoint(0, 1); RecPoint youshang = new RecPoint(1, 1); RecPoint youxia = new RecPoint(1, 0); // 定义x方向\y方向 各多少 int x = 5; int y = 6; double jianju = 1; // 把一行绘制出来 for (int i = 0; i < x; i++) { for (int j = 0; j < y; j++) { Point p1 = new GeometryFactory() .createPoint(new Coordinate(zuoxia.getX() + i * jianju, zuoxia.getY()+j*jianju)); Point p2 = new GeometryFactory() .createPoint(new Coordinate(zuoshang.getX() + i * jianju, zuoshang.getY()+j*jianju)); Point p3 = new GeometryFactory() .createPoint(new Coordinate(youshang.getX() + i * jianju ,youshang.getY()+j*jianju )); Point p4 = new GeometryFactory() .createPoint(new Coordinate(youxia.getX() + i * jianju, youxia.getY() + j * jianju)); Geometry read = new WKTReader() .read("POLYGON ((" + p1.getX() + " " + p1.getY() + " , " + p2.getX() + " " + p2.getY() + " , " + p3.getX() + " " + p3.getY() + " , " + p4.getX() + " " + p4.getY() + " , " + p1.getX() + " " + p1.getY() + " )) "); System.out.println(read); } } } } @Data @NoArgsConstructor @AllArgsConstructor class RecPoint { private double x; private double y; }

矩形网格绘制_第3张图片

本文代码及可视化代码均放在 gitee 码云上 欢迎star & fork

你可能感兴趣的:(JAVA,map)