您现在的位置是:首页 > 编程 > 

武大遥感院07年推免测试题

2025-07-29 10:21:12
武大遥感院07年推免测试题 大二了,想多参加参加写专业竞赛,比如测绘程序设计大赛、易智瑞杯等等,但名额有限,老师让我们这些想参加的,做做往年赛题,然后私发给他,这第一个题是武汉大学遥感信息工程学院研究生推免计算机能力测试。怎么说呢,感觉这题挺简单的,虽然也有可能是我做错了,题目如下,感兴趣也可以来做做:最开始老师是让我们用c写的,但我读写文件和画图有点问题,还是只能从事老本行了(py)先把所有代码

武大遥感院07年推免测试题

大二了,想多参加参加写专业竞赛,比如测绘程序设计大赛、易智瑞杯等等,但名额有限,老师让我们这些想参加的,做做往年赛题,然后私发给他,这第一个题是武汉大学遥感信息工程学院研究生推免计算机能力测试。怎么说呢,感觉这题挺简单的,虽然也有可能是我做错了,题目如下,感兴趣也可以来做做:

最开始老师是让我们用c写的,但我读写文件和画图有点问题,还是只能从事老本行了(py)

先把所有代码放前面了,免得不想听我废话的宝子懒得往后翻了

代码语言:javascript代码运行次数:0运行复制
import matplotlib.pyplot as plt

x_li = []
y_li = []
additional_points = [(58589.592080, 54596.68187), (5975.0571, 5520.050), (57590.790588, 5675.457160), (59646.57618, 54955.474606), (59215.055150, 54426.982554)]
# 读取文件并处理数据
with open("D:\OneDrive\桌面\\", 'r') as file:
    # 跳过第一行
    next(file)
    # 将文件中的对应点放入对应列表中
    for line in file:
        # 去除行末的换行符并分割数据
        data = line.strip().split()
        if len(data) == 2:
            x = float(data[0])
            y = float(data[1])
            x_li.append(x)
            y_li.append(y)

# 绘制散点图
plt.scatter(x_li, y_li, color='blue', label='Data Points')

# 出最左边、最右边、最上面、最下面的点
min_x, max_x = min(x_li), max(x_li)
min_y, max_y = min(y_li), max(y_li)
print(f"min_x:{min_x} ,max_x:{max_x} ,min_y:{min_y}, max_y:{max_y} ")
# 绘制矩形框
plt.plot([min_x, max_x, max_x, min_x, min_x], [min_y, min_y, max_y, max_y, min_y], color='red',
            label='Bounding Rectangle')
# # 添加额外的五个点
for point in additional_points:
    x, y = point
    plt.scatter([x], [y], color='black', label='Additional Point' if additional_points.index(
        point) == 0 else one)  # Only label the first additional point
num = 1
for i in additional_points:
    if i[0] > min_x and i[0] < max_x and i[1] > min_y and i[1] < max_y:
        print(f"第{num}个点在外包矩形内")
    else:
        print(f"第{num}个点没外包矩形内")
    num += 1

# 添加图例
handles, labels = plt.gca().get_legend_handles_labels()
by_label = dict(zip(labels, handles))
plt.legend(by_label.values(), by_label.keys())

# 添加标签
plt.xlabel('X-axis')
plt.ylabel('Y-axis')

# 显示图表
plt.show()

首先打算是将所有点画出,由于不熟悉c语言读取文件以及画散点图,所以我用python读取该txt文件。对于该文件排版,首先将第一行数据删除,使用next(file)函数,然后后面的坐标左边为x,右边为y,将x,y坐标分别放入列表中存储(类似于c语言中的数组),用plt.scatter(x_li, y_li, color='blue', label='Data Points'),画出散点图如下:

对于求取多边形的外包矩形,即到分别到x,y坐标的最大值、最小值,将x的最大值和最小值作两条垂直于x轴的直线,将y的最大值和最小值作平行于x轴的直线,四条直线连接后形成的矩形即为外包矩形,画外包矩形如图:

而给出的四个点坐标判断是否在外包矩形内部就简单了,仅需判断x坐标是否在(xmin,xmax),y坐标是否在(ymin,ymax)即可:

编写程序输出结果:

对这给出的五个点画图:

发现确实有一个点在矩形内,则结果无误。有其他想法的宝子可以评论区讨论哦哦哦

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-10-06,如有侵权请联系 cloudcommunity@tencent 删除min数据数组图表max

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1266972.html

相关标签:无
上传时间: 2025-07-28 19:28:49

上一篇:我的前端之旅

下一篇:人生第一个网站

留言与评论(共有 15 条评论)
本站网友 猫儿草
5分钟前 发表
[min_y
本站网友 保利首开丽湾家园
22分钟前 发表
handles)) plt.legend(by_label.values()
本站网友 太原铁路局官网
16分钟前 发表
label='Bounding Rectangle') # # 添加额外的五个点 for point in additional_points
本站网友 搜购输入法
7分钟前 发表
但名额有限
本站网友 长光卫星微博
28分钟前 发表
x = float(data[0]) y = float(data[1]) x_li.append(x) y_li.append(y) # 绘制散点图 plt.scatter(x_li
本站网友 股票专家
26分钟前 发表
[y]
本站网友 菠菜不能和什么一起吃
4分钟前 发表
感觉这题挺简单的
本站网友 南京玛丽妇科医院
10分钟前 发表
还是只能从事老本行了(py)先把所有代码放前面了
本站网友 专场招聘
27分钟前 发表
{min_y}
本站网友 液体爆炸
22分钟前 发表
所以我用python读取该txt文件
本站网友 成都最好的婚纱摄影
12分钟前 发表
最右边
本站网友 税法折旧年限
23分钟前 发表
handles)) plt.legend(by_label.values()
本站网友 青黄
3分钟前 发表
武大遥感院07年推免测试题 大二了
本站网友 兰州出租房屋
1分钟前 发表
max(y_li) print(f"min_x