本帖最后由 LocusAzzurro 于 2021-6-13 17:11 编辑
http://ww2.sinaimg.cn/mw690/0062Lzp6gw1ezzswgfzlnj30m80go0vo.jpg
使用表达式来控制你的百变选区!
大家好,这里Az,最近完成了对WorldEdit中//deform指令的研究,在这里与大家分享一下获得的成果,发掘这个功能更多的潜能。
目录
I.指令简介
II.指令结构与使用方式
III.可用标示
IV.坐标范围
V.变换方程-加减(移动)
VI.变换方程-乘除(缩放)
VII.函数的使用
VIII.特殊函数-旋转与翻转
IX.源坐标的使用
X.移动后源坐标的使用
XI.使用例子
XII.相关资料与来源
XIII.后记
阅读提示:你可能需要如下知识来理解本文并了解它的使用方式
注意本文内容虽然与//generate指令研究同源,但二者为WorldEdit下的不同功能
WorldEdit插件系列教程(作者 shengjing1): http://www.mcbbs.net/thread-68779-1-1.html
WorldEdit插件资源(作者 sjjklh): http://www.mcbbs.net/thread-68815-1-1.html
WorldEdit插件简短介绍:
2021/06/13 18:10 GMT+1 图片重修复与纯文本流线化完成
来自群组: Minecraft插件百科
http://ww2.sinaimg.cn/mw690/0062Lzp6gw1ezzswgfzlnj30m80go0vo.jpg
使用表达式来控制你的百变选区!
大家好,这里Az,最近完成了对WorldEdit中//deform指令的研究,在这里与大家分享一下获得的成果,发掘这个功能更多的潜能。
目录
I.指令简介
II.指令结构与使用方式
III.可用标示
IV.坐标范围
V.变换方程-加减(移动)
VI.变换方程-乘除(缩放)
VII.函数的使用
VIII.特殊函数-旋转与翻转
IX.源坐标的使用
X.移动后源坐标的使用
XI.使用例子
XII.相关资料与来源
XIII.后记
阅读提示:你可能需要如下知识来理解本文并了解它的使用方式
- WorldEdit 基础操作
- 三维直角坐标系
- 基础代数
- 几何变换
注意本文内容虽然与//generate指令研究同源,但二者为WorldEdit下的不同功能
WorldEdit插件系列教程(作者 shengjing1): http://www.mcbbs.net/thread-68779-1-1.html
WorldEdit插件资源(作者 sjjklh): http://www.mcbbs.net/thread-68815-1-1.html
WorldEdit插件简短介绍:
WorldEdit是一个常用的地图编辑工具,玩家可以利用它进行许多建筑中的操作,加快施工速度,同时也提供了许多便捷的功能。
2021/06/13 18:10 GMT+1 图片重修复与纯文本流线化完成
来自群组: Minecraft插件百科
本帖最后由 LocusAzzurro 于 2021-6-13 15:39 编辑
I.指令简介
//deform 为WorldEdit中的一个指令,作用是根据用户给出的表达式对选区进行变换。 这个功能是WorldEdit的强大功能之一,可以按照用户的需求对选区进行转换,可以达到旋转,拉伸,移动选区内容的效果。在本文中我将向各位分享这个指令的使用方式,需要注意的地方,以及一些实例,也希望各位共同发现它更多的潜能。在正式开始之前,我们先来看一个例子了解它的能力:
http://ww1.sinaimg.cn/mw690/0062Lzp6gw1ezzsgz36tjj311y0jiakj.jpg
上面的形体通过一个命令即可转换为:
http://ww2.sinaimg.cn/mw690/0062Lzp6gw1ezzsgp68saj311y0jlgwe.jpg
当然,这样看起来并不能很好的理解它是如何运作的,那么让我来一一了解它的功能,首先,我们通过上图使用的指令来了解指令的构成。
I.指令简介
//deform 为WorldEdit中的一个指令,作用是根据用户给出的表达式对选区进行变换。 这个功能是WorldEdit的强大功能之一,可以按照用户的需求对选区进行转换,可以达到旋转,拉伸,移动选区内容的效果。在本文中我将向各位分享这个指令的使用方式,需要注意的地方,以及一些实例,也希望各位共同发现它更多的潜能。在正式开始之前,我们先来看一个例子了解它的能力:
http://ww1.sinaimg.cn/mw690/0062Lzp6gw1ezzsgz36tjj311y0jiakj.jpg
上面的形体通过一个命令即可转换为:
http://ww2.sinaimg.cn/mw690/0062Lzp6gw1ezzsgp68saj311y0jlgwe.jpg
当然,这样看起来并不能很好的理解它是如何运作的,那么让我来一一了解它的功能,首先,我们通过上图使用的指令来了解指令的构成。
本帖最后由 LocusAzzurro 于 2021-6-13 16:08 编辑
II.指令结构与使用方式
上图使用的指令是:
复制代码
这其中://deform 为主指令x+=sin(2*y) 为使用的几何变换表达式
这里使用的表达式的写法与日常的有些不同,我们来看一下表达式需要注意的地方:
需要注意的地方有:
II.指令结构与使用方式
上图使用的指令是:
- //deform x+=sin(2*y)
这其中://deform 为主指令x+=sin(2*y) 为使用的几何变换表达式
这里使用的表达式的写法与日常的有些不同,我们来看一下表达式需要注意的地方:
- 表达式的写法与Java相似:
- 加减乘除分别为+ - * /;
- 次方为 ^ ,这个符号在这里不表示逻辑异或门;
- 使用多重括号时仅能使用圆括号;
- 在表达式中可以使用 && 来代表逻辑与门,用||来代表逻辑或门,! 比较特殊,加在一段表达式前代表逻辑非门,加在表达式或数字之后代表数学阶乘,但在这个指令的使用中不是非常重要;
- 比较使用的是 < > (大于与小于),<=(小于等于),>=(大于等于),==(等于),!=(不等于);
- 如果需要同时输入多个表达式(如一个x轴上的变换和一个y轴上的变换),两个表达式之间可以用分号隔开;
- 表达式写法支持Java风格的运算+赋值,如y+=1等同于y=y+1;
- 一般的函数是可以在表达式中使用的,如abs()绝对值,cos()正弦,sqrt()平方根等,完整的列表可以查看WorldEdit Wiki (在下文的函数部分会有介绍与例子)
需要注意的地方有:
- 与日常书写表达式不同,3x,5y等需要用乘号链接,即3*x, 5*y;
综上所述,这个指令的格式为
复制代码- //generate <ID> [-r/-o] <表达式>
-r, -o 为这个指令可以使用的标示。
使用这个指令的时候需要选择一个选区,指令会对选区按要求进行变形,注意选区的形状会影响到输出的结果,有时这个特性会造成一些麻烦,但有时可以使用这个来达到希望的效果,这一点我们接下来会讲到。
同时,就像刚才提到的,在使用这个指令时,我们可以使用一个或几个标示来改变指令的效果,来达到需要的结果。