前排感謝大家的支持~國服加油!~大家遊戲愉快
目前已知的信息:
阿爾法之前嘗試的是直線跑位,佶天鴻嘗試的是120度圓心角的弧線跑位
幾家公會目前都採用了遠離大團的弧線/近直線跑位,起點距離大團約30碼
阿爾法已經靠此 及應變 成功 艱難苟活 度過P1進入P2
分析看來,這種跑法是為了在產生一塊安全區方便大團集中站位/集火/刷血的同時,方便炮圈人員迅速歸位/轉火。
因此,在幾家公會已經達成共識的情況下,本文不再作路線規劃的建議,只會嘗試作一些對他們這種選擇的解釋和補充
重要的問題:
圈每輪轉動10度這個條件,其轉動方向是以人物前進方向(動座標系)為參考還是以場地本身(靜座標系)為參考的?
前者意味著可以通過轉身控制球的發射方向,後者意味著人物只是提供落點。
PS.個人更傾向於後者,因為目前沒有任何一個BOSS的技能會依據人物前進方向而改變,更多的只是判定人物位置;
而唯一個最接近雞蛋技能的就是扎昆的種子,該技能同樣不會被面向影響。
目前看來,實際使用的是靜座標系,所以想通過轉身把圈放成直線的可以歇啦。~
前排編輯1:
目前看到的一個 沒什麼用的 結論:(感謝#108樓幫助,進一步思考了這個問題)
安全區的方位=球10度旋轉軸(垂直屏幕向外)叉乘人物移動方向。矢量叉乘喲~
應要求加入了改進版帶軌跡的圖片,更加直觀~
靜止放
直線放(橫向)
直線放(縱向)
#96樓朋友提出,弧線跑位時起點位置會影響安全區,並且自己做了個插件,有需要可以移步
下兩圖是剛開始隨意設置數值的弧線放圈效果,更詳細的分析可以見“前排編輯2”
120度圓心角放(-180度起點)
120度圓心角放(-150度起點)
前排編輯2:
做個簡單的計算:人物移動速度是7碼每秒,圈0.5秒一輪,如果想使球的每輪路徑均為某個圓的切線(效果圖在下面),使得安全區成為一個標準圓
則需要使3.5碼弧對應10度的角度,那麼距安全區中心的半徑就需要R=3.5/(10/180*pi)約等於20碼,人物的速度限制了這一距離。
那麼代碼代入R=20的條件,圈的起始角為0度,從-150度開始跑,共轉過90度,效果如下:
90度圓心角放(-150度起點,半徑20)
嗯,看似很美好,然而實際上,安全區只是一個10碼半徑的圓。
而我們再來看看起始位置如果差了20度的效果(從-130起跑):
90度圓心角放(-130度起點,半徑20)
可以看到,安全區的空間被大大壓縮了,這還是建立在已知起始角是0度的情況,如果起始角不是0度,或者半徑20碼控制得不嚴格,都會對結果造成很大的影響(詳情可見後文圖)。
那麼現在看來,形成你所說的理想圓形安全區需要的條件如下:
一、知道圈的起始角
二、根據起始角定下的嚴格跑圈路線
三、嚴格執行跑圈的路線
然後最終只能得到一個10碼半徑的安全區。
所以這麼看來,幾家公會的放棄這種看似最規整的跑法,選擇離大團30碼 參雜靈性跑位 是很有道理的
原文:
之前帖子的鏈接:[火焰數學家的建模與總結]
作為一個 閒的沒事的 聖光數學家,昨晚也觀摩了下M雞蛋的炫酷技能,引用早上看到一篇帖子的模型,用Matlab畫了個動圖版本,可以隨意感受一下
下圖是靜止放完圈的效果,其輪廓形成阿基米德螺線:
下圖是正常速度直線移動放圈的效果:
圈的移動速度和人的移動速度都是可以調的,有興趣的胖友可以找我要下源代碼。
本來想試試3個圈一起跑結果計算量太大直接卡死了。。
另外還作了一個人物移動速度爆表的放圈效果, 化身追風少年
因為初始每60度會有一輪圈,每輪圈轉動10度,共轉動9次,從這幾個圖可以得到初步結論:
如果靜止不動放圈,場地上的每一個位置都會至少有一個球的軌跡經過(除非相鄰兩線間距過大產生縫隙,實際很難出現這種情況)
如果正常速度放圈,移動方向圈會變得密集,從而導致其前進方向的圈掃過的角度比其身後的圈掃過的角度要大,因此身後方向只需少許橫移即可躲過。 多普勒效應?
如果加速技能放圈,理想情況為緊緊跟著第一輪產生的圈,那麼每個方向的球經過的軌跡都會很接近一條直線,只要嚴格放出第N與N+1輪圈的位置,那麼這兩輪圈之間將會有很大的空隙。 音障?
放圈的人的速度受兩個制約條件:
一、若跟隨前一輪圈,則必須慢於前一輪圈(上限)
二、必須在下一輪圈落地前離開爆炸範圍(下限)
不過目前也只是一些猜想,實戰中的情況要複雜得多,是否也可以考慮特殊情況下DZ幫吃缺口/SS傳送門飛走這樣的戰術。
之前帖子中有人提出的弧線跑位效果(靜座標系)完成
動座標系一想就可以知道效果,而程序上實現比較困難就不作模擬了。
靜座標系,正向轉動90度放圈
靜座標系,反向轉動90度放圈
可以看到效果並不理想
靜座標系,反向轉動180度放圈
場地右側同樣出現了類似直線放圈的空隙,但跑位難度增加很多,顯然不如直線跑位
效果同樣沒有想象中理想
附Matlab源代碼,長慎點。
通過改變x1,y1至xt,yt的值即可改變 每一輪圈的位置,也側面反映的人物移動速度和方向。
改變註釋“球速”那一行中間的數字可以改變球的移動速度。
按需修改~
clear
axis([-40,60,-40,60])
hold on
% r=10;
% 想要弧線放圈則使用參數r*cosd(角度)為x賦值,使用r*sind(角度)為y賦值即可
x1=-20;
y1=0;
x2=-15;
y2=0;
x3=-10;
y3=0;
x4=-5;
y4=0;
x5=0;
y5=0;
x6=5;
y6=0;
x7=10;
y7=0;
x8=15;
y8=0;
x9=20;
y9=0;
xt=25;
yt=0;
% 直線軌跡部分,有需要可以取消註釋
% plot([x1,x1+100*cosd(60)],[y1,y1+100*sind(60)],'b')
% plot([x2,x2+100*cosd(70)],[y2,y2+100*sind(70)],'b')
% plot([x3,x3+100*cosd(80)],[y3,y3+100*sind(80)],'b')
% plot([x4,x4+100*cosd(90)],[y4,y4+100*sind(90)],'b')
% plot([x5,x5+100*cosd(100)],[y5,y5+100*sind(100)],'b')
% plot([x6,x6+100*cosd(110)],[y6,y6+100*sind(110)],'b')
% plot([x7,x7+100*cosd(120)],[y7,y7+100*sind(120)],'b')
% plot([x8,x8+100*cosd(130)],[y8,y8+100*sind(130)],'b')
% plot([x9,x9+100*cosd(140)],[y9,y9+100*sind(140)],'b')
% plot([xt,xt+100*cosd(150)],[yt,yt+100*sind(150)],'b')
% plot([x1,x1+50*cosd(0)],[y1,y1+50*sind(0)],'b')
% plot([x2,x2+50*cosd(10)],[y2,y2+50*sind(10)],'b')
% plot([x3,x3+50*cosd(20)],[y3,y3+50*sind(20)],'b')
% plot([x4,x4+50*cosd(30)],[y4,y4+50*sind(30)],'b')
% plot([x5,x5+50*cosd(40)],[y5,y5+50*sind(40)],'b')
% plot([x6,x6+50*cosd(50)],[y6,y6+50*sind(50)],'b')
% plot([x7,x7+50*cosd(60)],[y7,y7+50*sind(60)],'b')
% plot([x8,x8+100*cosd(70)],[y8,y8+100*sind(70)],'b')
% plot([x9,x9+100*cosd(80)],[y9,y9+100*sind(80)],'b')
% plot([xt,xt+100*cosd(90)],[yt,yt+100*sind(90)],'b')
h11 = plot(x1,y1,'or');
h21 = plot(x1,y1,'or');
h31 = plot(x1,y1,'or');
h41 = plot(x1,y1,'or');
h51 = plot(x1,y1,'or');
h61 = plot(x1,y1,'or');
h12 = plot(x2,y2,'or');
h22 = plot(x2,y2,'or');
h32 = plot(x2,y2,'or');
h42 = plot(x2,y2,'or');
h52 = plot(x2,y2,'or');
h62 = plot(x2,y2,'or');
h13 = plot(x3,y3,'or');
h23 = plot(x3,y3,'or');
h33 = plot(x3,y3,'or');
h43 = plot(x3,y3,'or');
h53 = plot(x3,y3,'or');
h63 = plot(x3,y3,'or');
h14 = plot(x4,y4,'or');
h24 = plot(x4,y4,'or');
h34 = plot(x4,y4,'or');
h44 = plot(x4,y4,'or');
h54 = plot(x4,y4,'or');
h64 = plot(x4,y4,'or');
h15 = plot(x5,y5,'or');
h25 = plot(x5,y5,'or');
h35 = plot(x5,y5,'or');
h45 = plot(x5,y5,'or');
h55 = plot(x5,y5,'or');
h65 = plot(x5,y5,'or');
h16 = plot(x6,y6,'or');
h26 = plot(x6,y6,'or');
h36 = plot(x6,y6,'or');
h46 = plot(x6,y6,'or');
h56 = plot(x6,y6,'or');
h66 = plot(x6,y6,'or');
h17 = plot(x7,y7,'or');
h27 = plot(x7,y7,'or');
h37 = plot(x7,y7,'or');
h47 = plot(x7,y7,'or');
h57 = plot(x7,y7,'or');
h67 = plot(x7,y7,'or');
h18 = plot(x8,y8,'or');
h28 = plot(x8,y8,'or');
h38 = plot(x8,y8,'or');
h48 = plot(x8,y8,'or');
h58 = plot(x8,y8,'or');
h68 = plot(x8,y8,'or');
h19 = plot(x9,y9,'or');
h29 = plot(x9,y9,'or');
h39 = plot(x9,y9,'or');
h49 = plot(x9,y9,'or');
h59 = plot(x9,y9,'or');
h69 = plot(x9,y9,'or');
h1t = plot(xt,yt,'or');
h2t = plot(xt,yt,'or');
h3t = plot(xt,yt,'or');
h4t = plot(xt,yt,'or');
h5t = plot(xt,yt,'or');
h6t = plot(xt,yt,'or');
z=0:0.2:500;%球速,改變中間的數字即可改變球速
a=35:35:340;
for i = 1:500
set(h11,'Xdata',z(i)+x1,'Ydata',0+y1);
set(h21,'Xdata',z(i)*cosd(60)+x1,'Ydata',z(i)*sind(60)+y1);
set(h31,'Xdata',z(i)*cosd(120)+x1,'Ydata',z(i)*sind(120)+y1);
set(h41,'Xdata',z(i)*cosd(180)+x1,'Ydata',z(i)*sind(180)+y1);
set(h51,'Xdata',z(i)*cosd(240)+x1,'Ydata',z(i)*sind(240)+y1);
set(h61,'Xdata',z(i)*cosd(300)+x1,'Ydata',z(i)*sind(300)+y1);
if i>=a(1)
set(h12,'Xdata',z(i-a(1)+1)*cosd(10)+x2,'Ydata',z(i-a(1)+1)*sind(10)+y2);
set(h22,'Xdata',z(i-a(1)+1)*cosd(60+10)+x2,'Ydata',z(i-a(1)+1)*sind(60+10)+y2);
set(h32,'Xdata',z(i-a(1)+1)*cosd(120+10)+x2,'Ydata',z(i-a(1)+1)*sind(120+10)+y2);
set(h42,'Xdata',z(i-a(1)+1)*cosd(180+10)+x2,'Ydata',z(i-a(1)+1)*sind(180+10)+y2);
set(h52,'Xdata',z(i-a(1)+1)*cosd(240+10)+x2,'Ydata',z(i-a(1)+1)*sind(240+10)+y2);
set(h62,'Xdata',z(i-a(1)+1)*cosd(300+10)+x2,'Ydata',z(i-a(1)+1)*sind(300+10)+y2);
end
if i>=a(2)
set(h13,'Xdata',z(i-a(2)+1)*cosd(20)+x3,'Ydata',z(i-a(2)+1)*sind(20)+y3);
set(h23,'Xdata',z(i-a(2)+1)*cosd(60+20)+x3,'Ydata',z(i-a(2)+1)*sind(60+20)+y3);
set(h33,'Xdata',z(i-a(2)+1)*cosd(120+20)+x3,'Ydata',z(i-a(2)+1)*sind(120+20)+y3);
set(h43,'Xdata',z(i-a(2)+1)*cosd(180+20)+x3,'Ydata',z(i-a(2)+1)*sind(180+20)+y3);
set(h53,'Xdata',z(i-a(2)+1)*cosd(240+20)+x3,'Ydata',z(i-a(2)+1)*sind(240+20)+y3);
set(h63,'Xdata',z(i-a(2)+1)*cosd(300+20)+x3,'Ydata',z(i-a(2)+1)*sind(300+20)+y3);
end
if i>=a(3)
set(h14,'Xdata',z(i-a(3)+1)*cosd(30)+x4,'Ydata',z(i-a(3)+1)*sind(30)+y4);
set(h24,'Xdata',z(i-a(3)+1)*cosd(60+30)+x4,'Ydata',z(i-a(3)+1)*sind(60+30)+y4);
set(h34,'Xdata',z(i-a(3)+1)*cosd(120+30)+x4,'Ydata',z(i-a(3)+1)*sind(120+30)+y4);
set(h44,'Xdata',z(i-a(3)+1)*cosd(180+30)+x4,'Ydata',z(i-a(3)+1)*sind(180+30)+y4);
set(h54,'Xdata',z(i-a(3)+1)*cosd(240+30)+x4,'Ydata',z(i-a(3)+1)*sind(240+30)+y4);
set(h64,'Xdata',z(i-a(3)+1)*cosd(300+30)+x4,'Ydata',z(i-a(3)+1)*sind(300+30)+y4);
end
if i>=a(4)
set(h15,'Xdata',z(i-a(4)+1)*cosd(40)+x5,'Ydata',z(i-a(4)+1)*sind(40)+y5);
set(h25,'Xdata',z(i-a(4)+1)*cosd(60+40)+x5,'Ydata',z(i-a(4)+1)*sind(60+40)+y5);
set(h35,'Xdata',z(i-a(4)+1)*cosd(120+40)+x5,'Ydata',z(i-a(4)+1)*sind(120+40)+y5);
set(h45,'Xdata',z(i-a(4)+1)*cosd(180+40)+x5,'Ydata',z(i-a(4)+1)*sind(180+40)+y5);
set(h55,'Xdata',z(i-a(4)+1)*cosd(240+40)+x5,'Ydata',z(i-a(4)+1)*sind(240+40)+y5);
set(h65,'Xdata',z(i-a(4)+1)*cosd(300+40)+x5,'Ydata',z(i-a(4)+1)*sind(300+40)+y5);
end
if i>=a(5)
set(h16,'Xdata',z(i-a(5)+1)*cosd(50)+x6,'Ydata',z(i-a(5)+1)*sind(50)+y6);
set(h26,'Xdata',z(i-a(5)+1)*cosd(60+50)+x6,'Ydata',z(i-a(5)+1)*sind(60+50)+y6);
set(h36,'Xdata',z(i-a(5)+1)*cosd(120+50)+x6,'Ydata',z(i-a(5)+1)*sind(120+50)+y6);
set(h46,'Xdata',z(i-a(5)+1)*cosd(180+50)+x6,'Ydata',z(i-a(5)+1)*sind(180+50)+y6);
set(h56,'Xdata',z(i-a(5)+1)*cosd(240+50)+x6,'Ydata',z(i-a(5)+1)*sind(240+50)+y6);
set(h66,'Xdata',z(i-a(5)+1)*cosd(300+50)+x6,'Ydata',z(i-a(5)+1)*sind(300+50)+y6);
end
if i>=a(6)
set(h17,'Xdata',z(i-a(6)+1)*cosd(60)+x7,'Ydata',z(i-a(6)+1)*sind(60)+y7);
set(h27,'Xdata',z(i-a(6)+1)*cosd(60+60)+x7,'Ydata',z(i-a(6)+1)*sind(60+60)+y7);
set(h37,'Xdata',z(i-a(6)+1)*cosd(120+60)+x7,'Ydata',z(i-a(6)+1)*sind(120+60)+y7);
set(h47,'Xdata',z(i-a(6)+1)*cosd(180+60)+x7,'Ydata',z(i-a(6)+1)*sind(180+60)+y7);
set(h57,'Xdata',z(i-a(6)+1)*cosd(240+60)+x7,'Ydata',z(i-a(6)+1)*sind(240+60)+y7);
set(h67,'Xdata',z(i-a(6)+1)*cosd(300+60)+x7,'Ydata',z(i-a(6)+1)*sind(300+60)+y7);
end
if i>=a(7)
set(h18,'Xdata',z(i-a(7)+1)*cosd(70)+x8,'Ydata',z(i-a(7)+1)*sind(70)+y8);
set(h28,'Xdata',z(i-a(7)+1)*cosd(60+70)+x8,'Ydata',z(i-a(7)+1)*sind(60+70)+y8);
set(h38,'Xdata',z(i-a(7)+1)*cosd(120+70)+x8,'Ydata',z(i-a(7)+1)*sind(120+70)+y8);
set(h48,'Xdata',z(i-a(7)+1)*cosd(180+70)+x8,'Ydata',z(i-a(7)+1)*sind(180+70)+y8);
set(h58,'Xdata',z(i-a(7)+1)*cosd(240+70)+x8,'Ydata',z(i-a(7)+1)*sind(240+70)+y8);
set(h68,'Xdata',z(i-a(7)+1)*cosd(300+70)+x8,'Ydata',z(i-a(7)+1)*sind(300+70)+y8);
end
if i>=a(8)
set(h19,'Xdata',z(i-a(8)+1)*cosd(80)+x9,'Ydata',z(i-a(8)+1)*sind(80)+y9);
set(h29,'Xdata',z(i-a(8)+1)*cosd(60+80)+x9,'Ydata',z(i-a(8)+1)*sind(60+80)+y9);
set(h39,'Xdata',z(i-a(8)+1)*cosd(120+80)+x9,'Ydata',z(i-a(8)+1)*sind(120+80)+y9);
set(h49,'Xdata',z(i-a(8)+1)*cosd(180+80)+x9,'Ydata',z(i-a(8)+1)*sind(180+80)+y9);
set(h59,'Xdata',z(i-a(8)+1)*cosd(240+80)+x9,'Ydata',z(i-a(8)+1)*sind(240+80)+y9);
set(h69,'Xdata',z(i-a(8)+1)*cosd(300+80)+x9,'Ydata',z(i-a(8)+1)*sind(300+80)+y9);
end
if i>=a(9)
set(h1t,'Xdata',z(i-a(9)+1)*cosd(90)+xt,'Ydata',z(i-a(9)+1)*sind(90)+yt);
set(h2t,'Xdata',z(i-a(9)+1)*cosd(60+90)+xt,'Ydata',z(i-a(9)+1)*sind(60+90)+yt);
set(h3t,'Xdata',z(i-a(9)+1)*cosd(120+90)+xt,'Ydata',z(i-a(9)+1)*sind(120+90)+yt);
set(h4t,'Xdata',z(i-a(9)+1)*cosd(180+90)+xt,'Ydata',z(i-a(9)+1)*sind(180+90)+yt);
set(h5t,'Xdata',z(i-a(9)+1)*cosd(240+90)+xt,'Ydata',z(i-a(9)+1)*sind(240+90)+yt);
set(h6t,'Xdata',z(i-a(9)+1)*cosd(300+90)+xt,'Ydata',z(i-a(9)+1)*sind(300+90)+yt);
end
pause(0.01); % 調整速度
end
hold off
來自NGA 作者糖灬小熊