开启辅助访问     
收藏本站

站内搜索

搜索

Minecraft(我的世界)苦力怕论坛

[BE教程] [原创]如何用一次函数寻找Minecraft中的末地要塞

 发表于 2024-9-5 22:00:53 来自手机|显示全部楼层|阅读模式 IP:山东省
本帖最后由 星空晶体 于 2024-9-5 22:09 编辑

声明:本教程需要学过一次函数才可能大概的了解本教程讲述的什么,作者没有经过在学校学过一次函数(本人本学期学一次函数,只是还没有学到)而是本人提早预习+查阅了资料,可能会有描述错误、表述不专业等。观看此教程,请对作者有基本的尊重,不在下方楼层灌水,谢谢!


0.前言


我们在Minecraft游玩纯生存时,找到末地要塞,去末地打败末影龙,再去末地外岛找末地城/船,是绝大多数玩家的一个目标之一。但除非出生点就有末地要塞的好种子地图,一般都要跑上千格找到末地要塞。那么如何大概找到末地要塞的位置呢?

1.什么是一次函数


「一次函数」是一种简单的数学函数,图像在直角坐标系上是一条直线,其表达式一般写作y=kx+b。在其中,「k」是斜率,代表着一次函数所图像在直角坐标系的倾斜程度「b」是一次函数图像直线的截距,代表直线与y轴交点的y坐标

2.末影之眼的特性与直角坐标系


当玩家从手中投出末影之眼,末影之眼的飞向是向最近的末地要塞的方向,并掉落。在其中,我们可以把其飞向轨迹看做一条直线。可能会有人问,如何找到这个“直线”呢?

我们把玩家自己所在的地点看做一个点,这里叫A1。把末影之眼掉落的位置看做另一个点,这里叫A2。我们知道:通过任意两点,有且只有一条直线。把A1连接A2为一条直线。由于飞行轨迹是朝向末地要塞的,所以这条直线是朝向末地要塞的。但要塞不能只用一条直线来确定位置,它可能在直线上任意的一个点或直线附近的点

看到这里,你有没有觉得一个Minecraft整个世界,其实可以看做一个直角坐标系。其中,点的坐标可以用(x,y)表示(Minecraft中,y坐标实际上是指高度,z才是y的作用,所以(x,y)实际是(x,z)但下面内容说为(x,y))


3.确定交点

3-1:第二条直线确定交点

上面说了,单单一条直线是不能确定末地要塞位置的。于是我们可以再用一条直线,这条直线也会指向末地要塞。这两条直线都指向同一个地方,其两条直线都会经过要塞或要塞附近,所以这两条直线的交点就是末地要塞大概的位置。

我们再离开第一条直线投末影之眼的地方,大概在几百格(太远可能末影之眼指向另一个要塞,进而出现一系列错误)来到第二个地点,可以记做B1。同样是上面的办法,把落地的地点记做B2。进而连成直线
3-2:确定表达式

上面说了,一个点的坐标可以用(x,y)表示,A1、A2、B1、B2都可以的。我们知道了一个点可以用x值与y值本身,那知道连成直线的两点的xy,其一次函数表达式如何写出?

回顾一次函数的写法:y=kx+b,也就是说,只要算出斜率k与截距b就可以知道表达式长什么样了。

k斜率计算方法:(y₂-y₁)/(x₂-x₁)就是直线上任意两点的y坐标值之差与x坐标值的比
b截距计算方法:把k斜率带进y₁=kx₁+b(其中一点的xy坐标)解一下,就知道b是多少了

我们知道了k、b,套进y=kx+b,就知道了表达式

现在,你知道了一条直线的表达式,另一条直线也是如此,所以最终结果应该是下面(无例子,k,b实际上是自己已算出的,计算时自己把下面的表达式kb替换):

y=k₁x+b₁     y=k₂x+b₂

3-3:计算交点要塞坐标

两条直线的表达式知道了,怎么得出交点的坐标呢?很简单,当它们相交时,xy坐标都是一样的。若要计算共同的y,就是各表达式等号后面组成一个算式:

k₁x+b₁=k₂x+b₂

解这个一元一次方程,得出x值后任选一个表达式,把x值套进去,y就知道了。自此,我们就知道了末地要塞大概的xy坐标
4.结尾


感谢你可以看到这里,这是我第一次写中长的教程,且里面的一次函数我是没有经过学校学过的,所以描述难免会出现差错。感谢你的支持。
PS:用草稿预览一下写的教程,结果表格全乱套了,只能逐一检查哪个部分错了QWQ



作者:星空晶体
苦力怕论坛,感谢有您~
 发表于 2024-9-5 22:04:28 来自手机|显示全部楼层 IP:江西省
排版不错
2#2024-9-5 22:04:28回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 发表于 2024-9-5 22:39:38 来自手机|显示全部楼层 IP:江苏省
bilibili上都是用的三角函数。并不是他们不知道一次函数,而是三角函数更精确。计算之后还要结合游戏机制。
祝愿你能找出更好的办法。再接再厉,加油!
3#2024-9-5 22:39:38回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 发表于 2024-9-5 22:40:54 来自手机|显示全部楼层 IP:江西省
不错的教程,爱来自罗马!
4#2024-9-5 22:40:54回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 发表于 2024-9-5 23:07:12|显示全部楼层 IP:安徽省
非常好的教程。
也可以用在JE的,不投JE教程有些可惜,毕竟JE分区有活动。
https://klpbbs.com/thread-133197-1-1.html
5#2024-9-5 23:07:12回复收起回复
苦力怕论坛,感谢有您~
 发表于 2024-9-6 00:04:26 来自手机|显示全部楼层 IP:广东省
我比较懒,喜欢用要塞查询网站
6#2024-9-6 00:04:26回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 发表于 2024-9-6 20:11:12 来自手机|显示全部楼层 IP:山东省
理论可行,不过游戏内使用可能会有比较大的误差(有时候甚至误差成百上千格),主要是游戏内不容易得到精确坐标,解三角形可以弥补这个问题,就是非常复杂,一般情况下可能还是方向距离估算效率最高
7#2024-9-6 20:11:12回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 发表于 2024-9-8 15:33:27 来自手机|显示全部楼层 IP:广东省
感谢分享!
8#2024-9-8 15:33:27回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

 发表于 2024-9-11 12:47:34 来自手机|显示全部楼层 IP:四川省
给个代码呗
9#2024-9-11 12:47:34回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

粤公网安备 44200002445329号 | 由 木韩网络 提供支持 | GMT+8, 2024-12-13 05:44

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4 粤ICP备2023071842号-3