init
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
/.idea
|
||||||
|
/.venv
|
||||||
118
minecraft/draw.py
Normal file
118
minecraft/draw.py
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
import json
|
||||||
|
from http.server import BaseHTTPRequestHandler, HTTPServer
|
||||||
|
|
||||||
|
import numpy
|
||||||
|
from matplotlib import pyplot
|
||||||
|
|
||||||
|
|
||||||
|
class MyJSONHandler(BaseHTTPRequestHandler):
|
||||||
|
def do_POST(self):
|
||||||
|
content_length = int(self.headers.get('Content-Length', 0))
|
||||||
|
body = self.rfile.read(content_length)
|
||||||
|
try:
|
||||||
|
data = json.loads(body)
|
||||||
|
# 处理 JSON 数据
|
||||||
|
response = {}
|
||||||
|
self.send_response(200)
|
||||||
|
self.send_header("Content-Type", "application/json")
|
||||||
|
self.end_headers()
|
||||||
|
self.wfile.write(json.dumps(response).encode())
|
||||||
|
draw0(data)
|
||||||
|
except json.JSONDecodeError:
|
||||||
|
self.send_response(400)
|
||||||
|
self.end_headers()
|
||||||
|
self.wfile.write(b"Invalid JSON")
|
||||||
|
|
||||||
|
|
||||||
|
def http_init():
|
||||||
|
httpd = HTTPServer(('', 4050), MyJSONHandler)
|
||||||
|
httpd.serve_forever()
|
||||||
|
|
||||||
|
|
||||||
|
def draw_old():
|
||||||
|
# 网格大小
|
||||||
|
width, height = 16, 16
|
||||||
|
start_x, start_y = 3, 3
|
||||||
|
|
||||||
|
# 创建颜色数组(RGB)
|
||||||
|
colors = numpy.ones((height, width, 3))
|
||||||
|
|
||||||
|
# 填充几个格子的颜色作为示例
|
||||||
|
colors[0, 0] = [0, 0, 0] # 黑色
|
||||||
|
colors[3, 3] = [1, 0, 0] # 红色
|
||||||
|
colors[5, 5] = [0, 1, 0] # 绿色
|
||||||
|
colors[10, 10] = [0, 0, 1] # 蓝色
|
||||||
|
|
||||||
|
figure, axes = pyplot.subplots(figsize=(6, 6))
|
||||||
|
axes.imshow(colors, extent=(0, width, 0, height), origin='lower')
|
||||||
|
|
||||||
|
# 绘制网格线
|
||||||
|
for x in range(start_x, start_x + width):
|
||||||
|
axes.axvline(x, color='black', linewidth=0.5)
|
||||||
|
for y in range(start_y, start_y + height):
|
||||||
|
axes.axhline(y, color='black', linewidth=0.5)
|
||||||
|
|
||||||
|
axes.set_xlim(start_x, start_x + width)
|
||||||
|
axes.xaxis.set_ticks_position('top')
|
||||||
|
axes.xaxis.set_label_position('top')
|
||||||
|
axes.set_ylim(start_y + height, start_y)
|
||||||
|
|
||||||
|
pyplot.show()
|
||||||
|
|
||||||
|
|
||||||
|
def draw0(data):
|
||||||
|
# 设定网格尺寸
|
||||||
|
center_x, center_z = 100, 100
|
||||||
|
width, height = 50, 50
|
||||||
|
start_x, start_z = center_x - 25, center_z - 25
|
||||||
|
end_x, end_z = start_x + width, start_z + height
|
||||||
|
|
||||||
|
# 创建一个空白色网格
|
||||||
|
colors = numpy.ones((height, width, 3)) # 3代表RGB
|
||||||
|
|
||||||
|
# 示例:为某些区块上色,比如(0,0)为红色 (5,5)为绿色
|
||||||
|
# colors[4, 4] = [1, 0, 0] # 红色
|
||||||
|
# colors[5, 5] = [0, 1, 0] # 绿色
|
||||||
|
# colors[6, 6] = [0, 1, 1] # 蓝色
|
||||||
|
|
||||||
|
cell_size = 50
|
||||||
|
figsize = cell_size / 1.54
|
||||||
|
font_size = cell_size / 2
|
||||||
|
|
||||||
|
figure, axes = pyplot.subplots(figsize=(figsize, figsize))
|
||||||
|
pyplot.imshow(colors, extent=(0, width, 0, height), origin='lower')
|
||||||
|
|
||||||
|
# 绘制网格线
|
||||||
|
for x in range(start_x, end_x):
|
||||||
|
pyplot.axvline(x, color='black', linewidth=0.5)
|
||||||
|
for y in range(start_z, end_z):
|
||||||
|
pyplot.axhline(y, color='black', linewidth=0.5)
|
||||||
|
|
||||||
|
# 在指定格子内加文字(如坐标或自定义信息)
|
||||||
|
for item in data:
|
||||||
|
print(item)
|
||||||
|
axes.text(float(item.get('x')) + 0.5, float(item.get('z')) + 0.5, item.get('level'), ha='center', va='center',
|
||||||
|
fontsize=font_size)
|
||||||
|
|
||||||
|
axes.set_xlim(start_x, end_x)
|
||||||
|
axes.xaxis.set_ticks_position('top')
|
||||||
|
axes.xaxis.set_label_position('top')
|
||||||
|
axes.set_ylim(end_z, start_z)
|
||||||
|
pyplot.show()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
http_init()
|
||||||
|
# data = [
|
||||||
|
# {
|
||||||
|
# 'x': 80,
|
||||||
|
# 'z': 80,
|
||||||
|
# 'level': 32,
|
||||||
|
# },
|
||||||
|
# {
|
||||||
|
# 'x': 90,
|
||||||
|
# 'z': 90,
|
||||||
|
# 'level': 32,
|
||||||
|
# },
|
||||||
|
# ]
|
||||||
|
# draw0(data)
|
||||||
Reference in New Issue
Block a user