前排感谢大家的支持~国服加油!~大家游戏愉快

目前已知的信息:

阿尔法之前尝试的是直线跑位,佶天鸿尝试的是120度圆心角的弧线跑位

几家公会目前都采用了远离大团的弧线/近直线跑位,起点距离大团约30码

阿尔法已经靠此 及应变 成功 艰难苟活 度过P1进入P2

分析看来,这种跑法是为了在产生一块安全区方便大团集中站位/集火/刷血的同时,方便炮圈人员迅速归位/转火。

因此,在几家公会已经达成共识的情况下,本文不再作路线规划的建议,只会尝试作一些对他们这种选择的解释和补充

重要的问题:

圈每轮转动10度这个条件,其转动方向是以人物前进方向(动坐标系)为参考还是以场地本身(静坐标系)为参考的?

前者意味着可以通过转身控制球的发射方向,后者意味着人物只是提供落点。

PS.个人更倾向于后者,因为目前没有任何一个BOSS的技能会依据人物前进方向而改变,更多的只是判定人物位置;

直线放(横向)

魔兽世界摇雪球的英雄(魔兽世界M鸡蛋阿基米德螺旋线之Matlab动图)(1)

直线放(纵向)

魔兽世界摇雪球的英雄(魔兽世界M鸡蛋阿基米德螺旋线之Matlab动图)(2)

#96楼朋友提出,弧线跑位时起点位置会影响安全区,并且自己做了个插件,有需要可以移步

下两图是刚开始随意设置数值的弧线放圈效果,更详细的分析可以见“前排编辑2”

120度圆心角放(-180度起点)

魔兽世界摇雪球的英雄(魔兽世界M鸡蛋阿基米德螺旋线之Matlab动图)(3)

120度圆心角放(-150度起点)

魔兽世界摇雪球的英雄(魔兽世界M鸡蛋阿基米德螺旋线之Matlab动图)(4)

前排编辑2:

做个简单的计算:人物移动速度是7码每秒,圈0.5秒一轮,如果想使球的每轮路径均为某个圆的切线(效果图在下面),使得安全区成为一个标准圆

则需要使3.5码弧对应10度的角度,那么距安全区中心的半径就需要R=3.5/(10/180*pi)约等于20码,人物的速度限制了这一距离

那么代码代入R=20的条件,圈的起始角为0度,从-150度开始跑,共转过90度,效果如下:

90度圆心角放(-150度起点,半径20)

魔兽世界摇雪球的英雄(魔兽世界M鸡蛋阿基米德螺旋线之Matlab动图)(5)

嗯,看似很美好,然而实际上,安全区只是一个10码半径的圆。

而我们再来看看起始位置如果差了20度的效果(从-130起跑):

90度圆心角放(-130度起点,半径20)

魔兽世界摇雪球的英雄(魔兽世界M鸡蛋阿基米德螺旋线之Matlab动图)(6)

可以看到,安全区的空间被大大压缩了,这还是建立在已知起始角是0度的情况,如果起始角不是0度,或者半径20码控制得不严格,都会对结果造成很大的影响(详情可见后文图)。

那么现在看来,形成你所说的理想圆形安全区需要的条件如下:

一、知道圈的起始角

二、根据起始角定下的严格跑圈路线

三、严格执行跑圈的路线

然后最终只能得到一个10码半径的安全区。

所以这么看来,几家公会的放弃这种看似最规整的跑法,选择离大团30码 参杂灵性跑位 是很有道理的

原文:

之前帖子的链接:[火焰数学家的建模与总结]

作为一个 闲的没事的 圣光数学家,昨晚也观摩了下M鸡蛋的炫酷技能,引用早上看到一篇帖子的模型,用Matlab画了个动图版本,可以随意感受一下

下图是静止放完圈的效果,其轮廓形成阿基米德螺线:

魔兽世界摇雪球的英雄(魔兽世界M鸡蛋阿基米德螺旋线之Matlab动图)(7)

下图是正常速度直线移动放圈的效果:

魔兽世界摇雪球的英雄(魔兽世界M鸡蛋阿基米德螺旋线之Matlab动图)(8)

圈的移动速度和人的移动速度都是可以调的,有兴趣的胖友可以找我要下源代码。

本来想试试3个圈一起跑结果计算量太大直接卡死了。。

另外还作了一个人物移动速度爆表的放圈效果, 化身追风少年

魔兽世界摇雪球的英雄(魔兽世界M鸡蛋阿基米德螺旋线之Matlab动图)(9)

因为初始每60度会有一轮圈,每轮圈转动10度,共转动9次,从这几个图可以得到初步结论:

不过目前也只是一些猜想,实战中的情况要复杂得多,是否也可以考虑特殊情况下DZ帮吃缺口/SS传送门飞走这样的战术。

之前帖子中有人提出的弧线跑位效果(静坐标系)完成

动坐标系一想就可以知道效果,而程序上实现比较困难就不作模拟了。

静坐标系,正向转动90度放圈

魔兽世界摇雪球的英雄(魔兽世界M鸡蛋阿基米德螺旋线之Matlab动图)(10)

静坐标系,反向转动90度放圈

魔兽世界摇雪球的英雄(魔兽世界M鸡蛋阿基米德螺旋线之Matlab动图)(11)

可以看到效果并不理想

静坐标系,反向转动180度放圈

魔兽世界摇雪球的英雄(魔兽世界M鸡蛋阿基米德螺旋线之Matlab动图)(12)

场地右侧同样出现了类似直线放圈的空隙,但跑位难度增加很多,显然不如直线跑位

魔兽世界摇雪球的英雄(魔兽世界M鸡蛋阿基米德螺旋线之Matlab动图)(13)

效果同样没有想象中理想

附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 作者糖灬小熊

,