《我的世界》贝塞尔曲线该如何绘制呢?小编今天为大家带来了“ruhuasiyu”编写的《我的世界》bezier(贝塞尔)曲线画法图文攻略教程,一起来看看吧!
Bezier曲线
首先我就不贴那两张图了。这样的曲线叫做Bezier曲线,n+1个点控制的我们称为n阶Bezier曲线,因为这条曲线的方程式n次的。
例如 n=2 时,对应的曲线一定是抛物线。
过程我不作推导,n次Bezier曲线的方程以向量形式为
特别地, n=2 时为
例子和命令
以 P_0=(0,0,0), P_1=(7,6,-10), P_2=(10,1,-3) 为例
P=(-4t^2+14t, -11t^2+12t, 17t^2-20t)
令步数为 100, s=100 t, 则
P(s)-P(s-1)=(-0.0008,-0.0022,0.0034)s+(0.1404,0.1211,-0.2017)
召唤两个雪球a,b:
1.summon snowball ~10 ~5 ~10 {CustomName:"a",CustomNameVisible:1,NoGravity:1}
2.summon snowball ~10 ~5 ~10 {CustomName:"b",CustomNameVisible:1,NoGravity:1}
依次执行(对应循环、连锁条件开启、连锁条件开启的命令方块)
1.tp @e[name=a] ~0.1404 ~0.1211 ~-0.2017
2.execute @e[name=b] ~ ~ ~ tp @e[name=a] ~-0.0008 ~-0.0022 ~0.0034
3.execute @e[name=a] ~ ~ ~ summon snowball ~ ~ ~ {CustomName:"b",CustomNameVisible:1,NoGravity:1}
算法速度为 O(N),即只有几百次,而原来作者的算法则为 O(N^2) 为几万次。
计算公式
坐标计算公式如下:
以 P_0=(0,0,0), P_1=(a,b,c), P_2=(d,e,f), 步数为 N 为例,计算出
1.(2a(N+1)-d)/N^2, (2b(N+1)-e)/N^2, (2c(N+1)-f)/N^2,
2.(2d-4a)/N^2, (2e-4b)/N^2, (2f-4c)/N^2,
带入两个 execute 命令的相对坐标即可。
如果需要的话可以加一个循环次数的限制,利用计分板即可,原帖中有提及,这里回忆一下:初始化
scoreboard objectives add temp dummy
设置循环次数
scoreboard players set #n temp 100
在原来的命令方块前方和后方各添加
scoreboard players test #n temp 1 10000
设置命令方块模式为
对于n阶Bezier曲线,设步长为 N,将t=s/N 代入公式中计算出 P(s),
然后计算 P(s)-P(s-1) 得到 s 的 n-1 阶多项式,将其从低次到高次的坐标依次代入
1.tp @e[name=a] ~这里 ~这里 ~这里
2.execute @e[name=b] ~ ~ ~ tp @e[name=a] ~这里 ~这里 ~这里
3.execute @e[name=b] ~ ~ ~ execute @e[name=b] ~ ~ ~ tp @e[name=a] ~这里 ~这里 ~这里
4.……
5.直到 n-1 个 execute @e[name=b] ~ ~ ~ …… execute @e[name=b] ~ ~ ~ tp @e[name=a] ~这里 ~这里 ~这里
即可。
这是用4条Bezier曲线拟合得到的圆
以上就是《我的世界》bezier(贝塞尔)曲线画法图文攻略教程,希望对各位有所帮助。
《我的世界》是一款带有生存冒险元素的建造类游戏。整个游戏世界由各种方块构成,玩家可以破坏它们,也可以用自己的方块随意建造东西。为了在游戏里生存和发展,玩家需要通过伐木、挖矿、捕猎等方式获取资源,并通过合成系统打造武器和工具(这方面和《牧场物语》有些类似)。随着游戏的进行,玩家自立更生,逐渐建造出一个自己的家园。《我的世界》采用第一人称视角,棱角分明的方块世界给人一种独特的感受。虽然画质比较粗糙,但是整体上很有临场感,而且可以通过选择材质包来改善画面。
欢迎玩家加入游迅网《我的世界》官方QQ群:592699415,一起和其他玩家分享游戏乐趣!