前排感谢大家的支持~国服加油!~大家游戏愉快
目前已知的信息:
阿尔法之前尝试的是直线跑位,佶天鸿尝试的是120度圆心角的弧线跑位
几家公会目前都采用了远离大团的弧线/近直线跑位,起点距离大团约30码
阿尔法已经靠此 及应变 成功 艰难苟活 度过P1进入P2
分析看来,这种跑法是为了在产生一块安全区方便大团集中站位/集火/刷血的同时,方便炮圈人员迅速归位/转火。
因此,在几家公会已经达成共识的情况下,本文不再作路线规划的建议,只会尝试作一些对他们这种选择的解释和补充
重要的问题:
圈每轮转动10度这个条件,其转动方向是以人物前进方向(动坐标系)为参考还是以场地本身(静坐标系)为参考的?
前者意味着可以通过转身控制球的发射方向,后者意味着人物只是提供落点。
PS.个人更倾向于后者,因为目前没有任何一个BOSS的技能会依据人物前进方向而改变,更多的只是判定人物位置;
直线放(横向)
直线放(纵向)
#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 作者糖灬小熊
,