最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【Minecraft】worldedit|generate 莫比烏斯旋轉(zhuǎn)模型

2022-11-12 17:53 作者:MHols_  | 我要投稿

成品

//generate 35 a=atan2(x,z)*2;x1=sqrt(x^2+z^2)-0.7;X=x1*cos(a)-y*sin(a);Y=x1*sin(a)+y*cos(a);data=(X<0)?(Y>0?1:2):(Y<0?3:4);(abs(X)-0.1)^2+(abs(Y)-0.1)^2<0.1^2
//generate 35 a=atan2(x,z)/2;x1=sqrt(x^2+(z)^2)-0.7;X=x1*cos(a)-y*sin(a);Y=x1*sin(a)+y*cos(a);(X)^2+15*Y^2<0.2^2

先講下主要的設計思路,我們以成品的第二個圖為例,把表達式拆開一步步分析

先做一個橢圓柱

//generate 35 x^2+15*y^2<0.2^2

接著我們暫時讓這個橢圓柱以z的值旋轉(zhuǎn):

//generate 35 a=(1+z)*pi/2;X=x*cos(a)-y*sin(a);Y=x*sin(a)+y*cos(a);X^2+15*Y^2<0.2^2

實現(xiàn)的方式就是

a=(1+z)*pi/2;

X=x*cos(a)-y*sin(a);Y=x*sin(a)+y*cos(a);

把x替換成X,y替換成Y,學過仿射變換的應該知道,這個來源于

https://ww2.mathworks.cn/help/releases/R2021a/images/matrix-representation-of-geometric-transformations.html

這個直接記住就行了,xy平面內(nèi)旋轉(zhuǎn)就把x和y替換掉

接著如果我們把仿射變換里的原x再提前做個變換

x1=x-0.7;a=(1+z)*pi/2;X=x1*cos(a)-y*sin(a);Y=x1*sin(a)+y*cos(a);

你會發(fā)現(xiàn),整體向x軸正向移動,這為我們把這個形狀做成環(huán)狀做了準備

//generate 35 a=(1+z)*pi/2;x1=x-0.7;X=x1*cos(a)-y*sin(a);Y=x1*sin(a)+y*cos(a);X^2+15*Y^2<0.2^2
//generate 35 a=atan2(x,z)/2;x1=sqrt(x^2+z^2)-0.7;X=x1*cos(a)-y*sin(a);Y=x1*sin(a)+y*cos(a);X^2+15*Y^2<0.2^2

我們把?x1=x-0.7; 改成?x1=sqrt(x^2+z^2)-0.7;這里我可能也說不清楚,大概就是讓本來只與x相關(guān)改成與x,z同時相關(guān)的(也就是把本來?x軸上的點距離原點大小?改成?平面上的點與原點的距離大?。?,這一步就可以讓這個形狀形成半徑為0.7的環(huán)狀

下一步,角度a不能再是與z的值相關(guān)的了,該改成atan2(x,z)/2,范圍:-pi/2~pi/2 總長:pi

意思就是旋轉(zhuǎn)的角度為其當前的極角相關(guān),一圈總共旋轉(zhuǎn)了pi,剛好接上

當然這個值可以變,改成2*atan2(x,z)就是一圈轉(zhuǎn)了4pi,也就是兩圈

好,依照上面的思路,如果我們在第一步時使用的不是一個橢圓柱,而是四個圓柱相貼合

//generate 35 (abs(x)-0.1)^2+(abs(y)-0.1)^2<0.1^2

然后,后面的操作同理,我們想讓這個環(huán)多轉(zhuǎn)點,那就a=atan2(x,z)*2

//generate 35 a=atan2(x,z);x1=sqrt(x^2+z^2)-0.7;X=x1*cos(a)-y*sin(a);Y=x1*sin(a)+y*cos(a);(abs(X)-0.1)^2+(abs(Y)-0.1)^2<0.1^2;

接下來是上色部分,我們只需要分開這四個圓柱就行了,data=(X<0)?(Y>0?1:2):(Y<0?3:4);

這里用了嵌套,應該不用多說

//generate 35 a=atan2(x,z)*2;x1=sqrt(x^2+z^2)-0.7;X=x1*cos(a)-y*sin(a);Y=x1*sin(a)+y*cos(a);data=(X<0)?(Y>0?1:2):(Y<0?3:4);(abs(X)-0.1)^2+(abs(Y)-0.1)^2<0.1^2;

同理,當這個是個矩形呢?

//generate 35 a=atan2(x,z)/2;x1=sqrt(x^2+z^2)-0.7;X=x1*cos(a)-y*sin(a);Y=x1*sin(a)+y*cos(a);X^10+Y^10<0.001^2;

總結(jié)下,本專欄的精華內(nèi)容就是:

a=atan2(x,z)/2;x1=sqrt(x^2+z^2)-0.7;X=x1*cos(a)-y*sin(a);Y=x1*sin(a)+y*cos(a);

后面接一個在x,y平面內(nèi)的圖形的表達式,把表達式內(nèi)的x,y分別替換成X,Y

有什么問題或者想看什么其他效果可以留言


【Minecraft】worldedit|generate 莫比烏斯旋轉(zhuǎn)模型的評論 (共 條)

分享到微博請遵守國家法律
敦煌市| 年辖:市辖区| 卫辉市| 新丰县| 富民县| 永胜县| 岐山县| 黑河市| 佛冈县| 仙桃市| 明星| 金溪县| 灵璧县| 得荣县| 柳州市| 龙南县| 阳东县| 阿荣旗| 集贤县| 武陟县| 景洪市| 麻城市| 项城市| 綦江县| 饶阳县| 吉木萨尔县| 库车县| 札达县| 宽甸| 松阳县| 敦化市| 黔东| 镇康县| 陵川县| 湖口县| 陆川县| 佛学| 平南县| 邮箱| 孟村| 石屏县|