俺理解哈,這是2個(gè)3維坐標(biāo)系之間的一種轉(zhuǎn)換方式【單向的,只能從笛卡爾到直角】. 2個(gè)坐標(biāo)系都是一般的3維空間直角坐標(biāo)系. 那3個(gè)數(shù)字就是空間的1點(diǎn)的3個(gè)坐標(biāo). 比如,493 ,454,967是空間中某點(diǎn)在笛卡爾坐標(biāo)系下的3個(gè)坐標(biāo).X=493,Y=454,Z=967. 同樣的這個(gè)點(diǎn),在直角坐標(biāo)系中的3個(gè)坐標(biāo)為16,13,22.x=16,y=13,z=22. 同樣的這個(gè)點(diǎn)在不同坐標(biāo)系的坐標(biāo)之間的對應(yīng)關(guān)系是, x=X的各位數(shù)字之和,y=Y的各位數(shù)字之和,z=Z的各位數(shù)字之和. X,Y,Z肯定不是憑空來的,是根據(jù)笛卡爾坐標(biāo)系的原點(diǎn),X,Y,Z軸正向上的單位向量算出來的.換句話說,設(shè)定了笛卡爾坐標(biāo)系以后,空間中的任何點(diǎn)就都有了相對應(yīng)的笛卡爾坐標(biāo)了.【就把這個(gè)笛卡爾坐標(biāo)系理解為游戲里的3維場景所在的1個(gè)3維空間坐標(biāo)系就行了吧.】 X,Y,Z有了以后,就可以轉(zhuǎn)換出x,y,z了.也就是知道了1個(gè)點(diǎn)的笛卡爾坐標(biāo)以后,就可以得到對應(yīng)的唯一的直角坐標(biāo)了.【這個(gè)直角坐標(biāo)系可以理解為游戲里的異空間.但它也是1個(gè)3維空間.】 在游戲里,房間是按照某種規(guī)律運(yùn)動的. 但這個(gè)規(guī)律是關(guān)于異空間的【關(guān)于直角坐標(biāo)系的】. 在異空間里,房間按照一定的速度,從1個(gè)點(diǎn)移動到另1個(gè)點(diǎn). 3次移動為1個(gè)周期. 第1次移動的速度是房間的3個(gè)笛卡爾坐標(biāo)的百位數(shù)字 - 十位數(shù)字. 第2次移動的速度是房間的3個(gè)笛卡爾坐標(biāo)的十位數(shù)字 - 個(gè)位數(shù)字. 第3次移動的速度是房間的3個(gè)笛卡爾坐標(biāo)的個(gè)位數(shù)字 - 百位數(shù)字. 【哈,如果某個(gè)房間的3個(gè)坐標(biāo)的百位=十位=個(gè)位.這個(gè)房間就永遠(yuǎn)不會動了.比如(111,222,333)這樣的房間,會靜止在那..】 如果你知道了房間在某個(gè)時(shí)刻的笛卡爾坐標(biāo),你就可以推算出下一個(gè)時(shí)刻這個(gè)房間的直角坐標(biāo).然后根據(jù)直角坐標(biāo)可以得到這個(gè)房間在笛卡爾坐標(biāo)系中的可能的幾個(gè)位置坐標(biāo). 比如,現(xiàn)在房間在笛卡爾坐標(biāo)系下的位置坐標(biāo)為(477,804,539),根據(jù)你說的算法,在異空間里【也就是直角坐標(biāo)系里】,第1次移動,房間會從(4+7+7,8+0+4,5+3+9)=(18,12,17)按照速度(4-7,8-0,5-3)=(-3,8,2)移動到(18,12,17)+(-3,8,2)= (15,20,19). 第2次移動,房間會從(15,20,19)按照速度(7-7,0-4,3-9)=(0,-4,-6)移動到(15,20,19)+(0,-4,-6)=(15,16,13). 第3次移動,房間會從(15,16,13)按照速度(7-4,4-8,9-5)=(3,-4,4)移動到(15,16,13)+(3,-4,4)= (18,12,17). 【看到了吧,在異空間里,3次移動后,房間又回到了原位.因?yàn)?次移動的速度之和的3個(gè)分量都=百位-十位+十位-個(gè)位+個(gè)位-百位=0】 俺不能肯定的是,異空間【直角坐標(biāo)系】里的1個(gè)點(diǎn),是否對應(yīng)著游戲的3維場景【笛卡爾坐標(biāo)系】里的唯一的1個(gè)點(diǎn).如果是的話,房間經(jīng)過3次移動在游戲的3維場景中,也回到了原處.如果是的話,從直角坐標(biāo)系到笛卡爾坐標(biāo)系也應(yīng)該有1種算法.如果不是的話,那就比較復(fù)雜了.即使房間在異空間里回到了原處,它也可能跑到了游戲的場景空間里的另外1個(gè)位置了.比如從(477,804,539)跑到了(747,408,359)之類的地方去了. |
|