Minecraft:Calculators/Projectile motion: Difference between revisions
From SAS Gaming Wiki
More actions
Sync: new page from Minecraft |
Sync: updated from Minecraft |
||
| Line 1: | Line 1: | ||
This interactive tool calculates the motion of a projectile. | This interactive tool calculates the motion of a [[Minecraft:projectile]]. | ||
<onlyinclude>{| class="wikitable calculator-container calculatorgadget-enabled" data-calculator-refresh-on-load="true" style="display: none; max-width: 500px; {{{style|}}}" | <onlyinclude>{| class="wikitable calculator-container calculatorgadget-enabled" data-calculator-refresh-on-load="true" style="display: none; max-width: 500px; {{{style|}}}" | ||
{{#if: {{{hidedynamics|}}} | | {{pipe escape| | {{#if: {{{hidedynamics|}}} | | {{pipe escape| | ||
| Line 31: | Line 31: | ||
|- | |- | ||
! style="{{#if: {{{hideproperties|}}} | display: none; | }}" | Drag-Y | ! style="{{#if: {{{hideproperties|}}} | display: none; | }}" | Drag-Y | ||
| style="{{#if: {{{hideproperties|}}} | display: none; | }}" | | | style="{{#if: {{{hideproperties|}}} | display: none; | }}" | {{Simplecalc|type=number|id=dragY|min=0|max=1|size=6|default={{{dragy|0.99}}}|decimals=3}} | ||
{{Simplecalc|type=number|id=dragY|min=0|max=1|size=6|default={{{dragy|0.99}}}|decimals=3}} | |||
|- | |- | ||
! style="{{#if: {{{hideproperties|}}} | display: none; | }}" | Ticking order | ! style="{{#if: {{{hideproperties|}}} | display: none; | }}" | Ticking order | ||
| style="{{#if: {{{hideproperties|}}} | display: none; | }}" colspan="3" | {{Simplecalc|type=select|id=order|class=cdx-select|mapping={"Position, Drag, Acceleration":1,"Position, Acceleration, Drag":2,"Acceleration, Position, Drag":3,"Drag, Acceleration, Position":4,"Drag, Position, Acceleration":5,"Acceleration, Drag, Position":6}|default={{{type|1}}}}} | | style="{{#if: {{{hideproperties|}}} | display: none; | }}" colspan="3" | {{Simplecalc|type=select|id=order|class=cdx-select|mapping={"Position, Drag, Acceleration":1,"Position, Acceleration, Drag":2,"Acceleration, Position, Drag":3,"Drag, Acceleration, Position":4,"Drag, Position, Acceleration":5,"Acceleration, Drag, Position":6}|default={{{type|1}}}}}{{Simplecalc|type=hidden|id=AH|formula=switch(order,1,1,2,1,3,1,4,dragH,5,dragH,6,dragH)}}{{Simplecalc|type=hidden|id=AY|formula=switch(order,1,1,2,1,3,1,4,dragY,5,dragY,6,dragY)}}{{Simplecalc|type=hidden|id=B|formula=switch(order,1,1,2,dragY,3,dragY,4,1,5,1,6,dragY)}}{{Simplecalc|type=hidden|id=C|formula=switch(order,1,1,2,dragY,3,1,4,1,5,dragY,6,dragY)}}{{Simplecalc|type=hidden|id=terminalSpeedSel|formula=switch(order,1,1,2,0,3,0,4,1,5,1,6,0)}} | ||
{{Simplecalc|type=hidden|id=AH|formula=switch(order,1,1,2,1,3,1,4,dragH,5,dragH,6,dragH)}} | |||
{{Simplecalc|type=hidden|id=AY|formula=switch(order,1,1,2,1,3,1,4,dragY,5,dragY,6,dragY)}} | |||
{{Simplecalc|type=hidden|id=B|formula=switch(order,1,1,2,dragY,3,dragY,4,1,5,1,6,dragY)}} | |||
{{Simplecalc|type=hidden|id=C|formula=switch(order,1,1,2,dragY,3,1,4,1,5,dragY,6,dragY)}} | |||
{{Simplecalc|type=hidden|id=terminalSpeedSel|formula=switch(order,1,1,2,0,3,0,4,1,5,1,6,0)}} | |||
|- | |- | ||
{{#if: {{{hidedynamics|}}} | | {{pipe escape| | {{#if: {{{hidedynamics|}}} | | {{pipe escape| | ||
! {{simplecalc-hideifzero|formula=timeInput|Time}}{{simplecalc-hideifzero|formula=radiusInput|Radius|starthidden=1}} | ! {{simplecalc-hideifzero|formula=timeInput|Time}}{{simplecalc-hideifzero|formula=radiusInput|Radius|starthidden=1}} | ||
| colspan{{=}}"3" | | | colspan{{=}}"3" | | ||
{{Simplecalc|type=hidden|id=ImindHt|formula=1-pow(dragH,time)}} | {{Simplecalc|type=hidden|id=ImindHt|formula=1-pow(dragH,time)}}{{Simplecalc|type=hidden|id=ImindYt|formula=1-pow(dragY,time)}}{{Simplecalc|type=hidden|id=timeRadius|formula=log(1-radius/(AH*recImindH*pow(vxInit*vxInit+vzInit*vzInit,0.5)))/logdH}}{{Simplecalc|type=hidden|id=radiusTime|formula=AH*recImindH*ImindHt*pow(vxInit*vxInit+vzInit*vzInit,0.5)}}{{simplecalc-hideifzero|formula=timeInput|{{Simplecalc|type=range|min=0|max=500|step=1|id=time|formula=if(radiusInput,timeRadius,time2)|default={{{time|0}}}}} {{Simplecalc|type=number|min=0|max=500|step=1|id=time2|formula=if(radiusInput,timeRadius,time)|default={{{time|0}}}}} ticks | ||
{{Simplecalc|type=hidden|id=ImindYt|formula=1-pow(dragY,time)}}{{Simplecalc|type=hidden|id=timeRadius|formula=log(1-radius/(AH*recImindH*pow(vxInit*vxInit+vzInit*vzInit,0.5)))/logdH}}{{Simplecalc|type=hidden|id=radiusTime|formula=AH*recImindH*ImindHt*pow(vxInit*vxInit+vzInit*vzInit,0.5)}} | |||
{{simplecalc-hideifzero|formula=timeInput|{{Simplecalc|type=range|min=0|max=500|step=1|id=time|formula=if(radiusInput,timeRadius,time2)|default={{{time|0}}}}} {{Simplecalc|type=number|min=0|max=500|step=1|id=time2|formula=if(radiusInput,timeRadius,time)|default={{{time|0}}}}} ticks | |||
}}{{simplecalc-hideifzero|formula=radiusInput|{{Simplecalc|type=range|min=0|max=300|step=1|id=radius|formula=if(timeInput,radiusTime,radius2)|default=0}} {{Simplecalc|type=number|min=0|max=300|step=1|id=radius2|formula=if(timeInput,radiusTime,radius)|default=0}} m | }}{{simplecalc-hideifzero|formula=radiusInput|{{Simplecalc|type=range|min=0|max=300|step=1|id=radius|formula=if(timeInput,radiusTime,radius2)|default=0}} {{Simplecalc|type=number|min=0|max=300|step=1|id=radius2|formula=if(timeInput,radiusTime,radius)|default=0}} m | ||
|starthidden=1}}<br>{{Simplecalc|id=timeInput|name=inputType|type=radio|default=1}} {{Simplecalc label|for=timeInput|label=Time}} {{Simplecalc|id=radiusInput|name=inputType|type=radio|default=0}} {{Simplecalc label|for=radiusInput|label=Radius}} | |starthidden=1}}<br>{{Simplecalc|id=timeInput|name=inputType|type=radio|default=1}} {{Simplecalc label|for=timeInput|label=Time}} {{Simplecalc|id=radiusInput|name=inputType|type=radio|default=0}} {{Simplecalc label|for=radiusInput|label=Radius}} | ||
| Line 54: | Line 46: | ||
| colspan{{=}}"3" | | | colspan{{=}}"3" | | ||
{{Simplecalc|type=hidden|id=vGravRec|formula=vyInit-grav*recImindY*B}} | {{Simplecalc|type=hidden|id=vGravRec|formula=vyInit-grav*recImindY*B}} | ||
X {{=}} {{Simplecalc|type=plain|id=px|formula=pxInit+ImindHt*recImindH*vxInit*AH|size=6|decimals=3}}, Y {{=}} {{Simplecalc|type=plain|id=py|formula=pyInit+ImindYt*recImindY*vGravRec*AY+grav*recImindY*time*C|size=6|decimals=3}}, Z {{=}} {{Simplecalc|type=plain|id=pz|formula=pzInit+ImindHt*recImindH*vzInit*AH|size=6|decimals=3}}<br>Maximum height: {{Simplecalc-hideifzero|formula=ifgreater(timePeak,0,1,0)|{{Simplecalc|type=plain|id=peak|formula=pyInit+(1-pow(dragY,timePeak))*recImindY*vGravRec*AY+grav*recImindY*timePeak*C|size=6|decimals=3}} m ({{Simplecalc|type=plain|id=timePeak|formula=round(1/logdY*log(C/AY*grav/(logdY*vGravRec)))}} ticks)}}{{Simplecalc-hideifzero|formula=ifgreater(timePeak,0,0,1)|none}}<br>Horizontal range: {{Simplecalc|type=plain|id=range|formula=AH*recImindH*(1-pow(dragH,timeGround))*pow(vxInit*vxInit+vzInit*vzInit,0.5)|size=6|decimals=3}} | X {{=}} {{Simplecalc|type=plain|id=px|formula=pxInit+ImindHt*recImindH*vxInit*AH|size=6|decimals=3}}, Y {{=}} {{Simplecalc|type=plain|id=py|formula=pyInit+ImindYt*recImindY*vGravRec*AY+grav*recImindY*time*C|size=6|decimals=3}}, Z {{=}} {{Simplecalc|type=plain|id=pz|formula=pzInit+ImindHt*recImindH*vzInit*AH|size=6|decimals=3}}<br>Maximum height: {{Simplecalc-hideifzero|formula=ifgreater(timePeak,0,1,0)|{{Simplecalc|type=plain|id=peak|formula=pyInit+(1-pow(dragY,timePeak))*recImindY*vGravRec*AY+grav*recImindY*timePeak*C|size=6|decimals=3}} m ({{Simplecalc|type=plain|id=timePeak|formula=round(1/logdY*log(C/AY*grav/(logdY*vGravRec)))}} ticks)}}{{Simplecalc-hideifzero|formula=ifgreater(timePeak,0,0,1)|none}}<br>Horizontal range: {{Simplecalc|type=plain|id=range|formula=AH*recImindH*(1-pow(dragH,timeGround))*pow(vxInit*vxInit+vzInit*vzInit,0.5)|size=6|decimals=3}} {{Simplecalc|type=hidden|id=pdaInit|formula=-(recImindY*vGravRec*AY)/(grav*recImindY*C)}}{{Simplecalc|type=hidden|id=pdaIterA|formula=pdaInit-(recImindY*((1-pow(dragY,pdaInit))*vGravRec*AY+pdaInit*grav*C))/(recImindY*(grav*C-logdY*pow(dragY,pdaInit)*vGravRec*AY))}}{{Simplecalc|type=hidden|id=pdaIterB|formula=pdaIterA-(recImindY*((1-pow(dragY,pdaIterA))*vGravRec*AY+pdaIterA*grav*C))/(recImindY*(grav*C-logdY*pow(dragY,pdaIterA)*vGravRec*AY))}}{{Simplecalc|type=hidden|id=pdaIterC|formula=pdaIterB-(recImindY*((1-pow(dragY,pdaIterB))*vGravRec*AY+pdaIterB*grav*C))/(recImindY*(grav*C-logdY*pow(dragY,pdaIterB)*vGravRec*AY))}} m ({{Simplecalc|type=plain|id=timeGround|formula=round(pdaIterC-(recImindY*((1-pow(dragY,pdaIterC))*vGravRec*AY+pdaIterC*grav*C))/(recImindY*(grav*C-logdY*pow(dragY,pdaIterC)*vGravRec*AY)))}} ticks) | ||
{{Simplecalc|type=hidden|id=pdaInit|formula=-(recImindY*vGravRec*AY)/(grav*recImindY*C)}} | |||
{{Simplecalc|type=hidden|id=pdaIterA|formula=pdaInit-(recImindY*((1-pow(dragY,pdaInit))*vGravRec*AY+pdaInit*grav*C))/(recImindY*(grav*C-logdY*pow(dragY,pdaInit)*vGravRec*AY))}} | |||
{{Simplecalc|type=hidden|id=pdaIterB|formula=pdaIterA-(recImindY*((1-pow(dragY,pdaIterA))*vGravRec*AY+pdaIterA*grav*C))/(recImindY*(grav*C-logdY*pow(dragY,pdaIterA)*vGravRec*AY))}} | |||
{{Simplecalc|type=hidden|id=pdaIterC|formula=pdaIterB-(recImindY*((1-pow(dragY,pdaIterB))*vGravRec*AY+pdaIterB*grav*C))/(recImindY*(grav*C-logdY*pow(dragY,pdaIterB)*vGravRec*AY))}} m ({{Simplecalc|type=plain|id=timeGround|formula=round(pdaIterC-(recImindY*((1-pow(dragY,pdaIterC))*vGravRec*AY+pdaIterC*grav*C))/(recImindY*(grav*C-logdY*pow(dragY,pdaIterC)*vGravRec*AY)))}} ticks) | |||
|- | |- | ||
! Velocity | ! Velocity | ||
| Line 67: | Line 55: | ||
{{#ifeq: {{{name|}}} | Arrow | {{pipe escape| | {{#ifeq: {{{name|}}} | Arrow | {{pipe escape| | ||
! style{{=}}"{{#if: {{{hidelevel|{{{hidecrit|}}}}}} | display: none; | }}" | Bow level | ! style{{=}}"{{#if: {{{hidelevel|{{{hidecrit|}}}}}} | display: none; | }}" | Bow level | ||
| style{{=}}"{{#if: {{{hidelevel|}}} | display: none; | }}" colspan{{=}}"{{#if: {{{hidecrit|}}} | 3 | 2 }}" | {{Simplecalc|id=speedVal|type=hidden|formula=pow(vx*vx+vy*vy+vz*vz,0.5)}} | | style{{=}}"{{#if: {{{hidelevel|}}} | display: none; | }}" colspan{{=}}"{{#if: {{{hidecrit|}}} | 3 | 2 }}" | {{Simplecalc|id=speedVal|type=hidden|formula=pow(vx*vx+vy*vy+vz*vz,0.5)}}{{Simplecalc|id=dmgTag|type=hidden|formula=ifequal(level,0,2,2.5+level/2)}}{{Simplecalc|type=range|datalist=0;1;2;3;4;5|min=0|max=5|step=1|size={{#if: {{{hidecrit|}}} | 24 | 12 }}|id=level|formula=level2|default={{{level|0}}}}} {{Simplecalc|type=number|min=0|max=5|step=1|id=level2|formula=level|default={{{level|0}}}}} | ||
{{Simplecalc|id=dmgTag|type=hidden|formula=ifequal(level,0,2,2.5+level/2)}}{{Simplecalc|type=range|datalist=0;1;2;3;4;5|min=0|max=5|step=1|size={{#if: {{{hidecrit|}}} | 24 | 12 }}|id=level|formula=level2|default={{{level|0}}}}} {{Simplecalc|type=number|min=0|max=5|step=1|id=level2|formula=level|default={{{level|0}}}}} | |||
| style{{=}}"{{#if: {{{hidelevel|{{{hidecrit|}}}}}} | display: none; | }}" | {{Simplecalc|type=checkbox|id=crit|default={{{crit|0}}}}} {{Simplecalc label|Critical charge|for=crit}} | | style{{=}}"{{#if: {{{hidelevel|{{{hidecrit|}}}}}} | display: none; | }}" | {{Simplecalc|type=checkbox|id=crit|default={{{crit|0}}}}} {{Simplecalc label|Critical charge|for=crit}} | ||
|- | |- | ||
| Line 79: | Line 66: | ||
! colspan="4" | Launch angle calculator{{note|group=calcnote|name=angleConvention|Yaw and pitch follow the ''Minecraft'''s [[Minecraft:Rotation|convention]], thus zero yaw is directed at +Z (south) and looking upwards corresponds to negative values of pitch.}}{{Simplecalc|type=hidden|id=recImindH|formula=1/(1-dragH)}}{{Simplecalc|type=hidden|id=recImindY|formula=1/(1-dragY)}}{{Simplecalc|type=hidden|id=logdH|formula=log(dragH)}}{{Simplecalc|type=hidden|id=logdY|formula=log(dragY)}} | ! colspan="4" | Launch angle calculator{{note|group=calcnote|name=angleConvention|Yaw and pitch follow the ''Minecraft'''s [[Minecraft:Rotation|convention]], thus zero yaw is directed at +Z (south) and looking upwards corresponds to negative values of pitch.}}{{Simplecalc|type=hidden|id=recImindH|formula=1/(1-dragH)}}{{Simplecalc|type=hidden|id=recImindY|formula=1/(1-dragY)}}{{Simplecalc|type=hidden|id=logdH|formula=log(dragH)}}{{Simplecalc|type=hidden|id=logdY|formula=log(dragY)}} | ||
|- | |- | ||
| colspan="4" | ''Given a target coordinate and an initial speed, calculate the {{lc:{{{name|entity}}}}} launch angle to hit the target. {{Simplecalc-hideifzero|formula= | | colspan="4" | ''Given a target coordinate and an initial speed, calculate the {{lc:{{{name|entity}}}}} launch angle to hit the target. {{Simplecalc-hideifzero|formula=pitchHit|{{#ifeq: {{{name|}}} | Arrow | <br> | }}Target is hit after {{Simplecalc|type=plain|id=timeTarget|formula=round(log(pitchTimeBase)/logdH)}} ticks{{#ifeq: {{{name|}}} | Arrow | {{Simplecalc|type=hidden|id=vxTarget|formula=-logdH*pow(dragH,timeTarget)*recImindH*speedTarget*cos(pitchTarget)*cos(yawTarget+pi/2)*AH}}{{Simplecalc|type=hidden|id=vyTarget|formula=recImindY*(grav*C-logdY*pow(dragY,timeTarget)*(speedTarget*sin(pitchTarget)-grav*recImindY*B)*AY)}}{{Simplecalc|type=hidden|id=vzTarget|formula=-logdH*pow(dragH,timeTarget)*recImindH*speedTarget*cos(pitchTarget)*sin(yawTarget+pi/2)*AH}} and would deal {{Simplecalc-hideifzero|formula=crit|avg.}} {{Simplecalc|id=dmgTarget|type=plain|formula=if(crit,5/4*round(speedTarget*dmgTag)+1,round(speedTarget*dmgTag))|default=6.00|size=6|decimals=2}} <span class{{=}}"nowrap mc-hearts">{{healthbar|2|9}} × {{Simplecalc|id=dmgTargetHeart|type=plain|formula=dmgTarget/2|default=3}}</span> damage }}.}}'' | ||
|- | |- | ||
! X | ! X | ||
| {{#if: {{{hidedynamics|}}} | style{{=}}"white-space: nowrap;" {{!}} {{Simplecalc|type=number|id=pxInit|size=3|default={{{x0|0}}}|decimals=3}} | | {{#if: {{{hidedynamics|}}} | style{{=}}"white-space: nowrap;" {{!}} {{Simplecalc|type=number|id=pxInit|size=3|default={{{x0|0}}}|decimals=3}} to | }}{{Simplecalc|type=number|id=pxTarget|size={{#if: {{{hidedynamics|}}} | 3 | 6 }}|default={{{xt|10}}}|decimals=3}} | ||
! Yaw | ! Yaw | ||
| style{{=}}"white-space: nowrap;" | {{Simplecalc|type=hidden|id=dX|formula=pxTarget-pxInit}}{{Simplecalc|type=hidden|id=dY|formula=pyTarget-pyInit}}{{Simplecalc|type=hidden|id=dZ|formula=pzTarget-pzInit}}{{Simplecalc|type=hidden|id=yawTarget|formula=atan2(dZ,dX)}}{{Simplecalc|type=plain|id=yawTargetDeg|formula=180/pi*yawTarget-90|decimals=3}} deg | | style{{=}}"white-space: nowrap;" | {{Simplecalc|type=hidden|id=dX|formula=pxTarget-pxInit}}{{Simplecalc|type=hidden|id=dY|formula=pyTarget-pyInit}}{{Simplecalc|type=hidden|id=dZ|formula=pzTarget-pzInit}}{{Simplecalc|type=hidden|id=pitchR|formula=pow(dX*dX+dZ*dZ,0.5)}}{{Simplecalc|type=hidden|id=targetVertical|formula=ifless(pitchR,1/1e10,1,0)}}{{Simplecalc|type=hidden|id=yawTarget|formula=atan2(dZ,dX)}}{{Simplecalc|type=plain|id=yawTargetDeg|formula=180/pi*yawTarget-90|decimals=3}} deg | ||
|- | |- | ||
! Y | ! Y | ||
| {{#if: {{{hidedynamics|}}} | style{{=}}"white-space: nowrap;" {{!}} {{Simplecalc|type=number|id=pyInit|size=3|default={{{y0|0}}}|decimals=3}} | | {{#if: {{{hidedynamics|}}} | style{{=}}"white-space: nowrap;" {{!}} {{Simplecalc|type=number|id=pyInit|size=3|default={{{y0|0}}}|decimals=3}} to | }}{{Simplecalc|type=number|id=pyTarget|size={{#if: {{{hidedynamics|}}} | 3 | 6 }}|default={{{yt|10}}}|decimals=3}} | ||
! Pitch | ! Pitch | ||
| style{{=}}"white-space: nowrap;" | {{Simplecalc|type=hidden|id=pitchA|formula=AY*recImindY}}{{Simplecalc|type=hidden|id=pitchB|formula= | | style{{=}}"white-space: nowrap;" | {{Simplecalc|type=hidden|id=pitchA|formula=AY*recImindY}}{{Simplecalc|type=hidden|id=pitchB|formula=pitchR/(AH*speedTarget*recImindH)}}{{Simplecalc|type=hidden|id=pitchC|formula=logdY/logdH}}{{Simplecalc|type=hidden|id=pitchD|formula=B*grav*recImindY}}{{Simplecalc|type=hidden|id=pitchE|formula=C*grav*recImindY/logdH}}{{Simplecalc|type=hidden|id=euler|formula=exp(1)}}{{Simplecalc|type=hidden|id=pitchInitA|formula=-pitchA*(speedTarget-pitchD)*pitchC/pitchE*exp(pitchC*(dY-pitchA*(speedTarget-pitchD))/pitchE)}}{{Simplecalc|type=hidden|id=pitchInitB|formula=pow(2/euler*(pitchInitA+1/euler),0.5)}}{{Simplecalc|type=hidden|id=pitchInitC|formula=pitchInitA/(1/euler+pitchInitB*pow(1+euler/3*pitchInitB,0.5))}}{{Simplecalc|type=hidden|id=pitchDist|formula=pow(dX*dX+dY*dY+dZ*dZ,0.5)}}{{Simplecalc|type=hidden|id=pitchVerticalAngle|formula=if(direct,ifless(dY,0,-pi/2,pi/2),pi/2)}}{{Simplecalc|type=hidden|id=pitchInit|formula=if(targetVertical,pitchVerticalAngle,if(direct,asin(dY/pitchDist),acos(pitchB/(1-pow(-pitchE/(pitchA*(speedTarget-pitchD)*pitchC)*pitchInitC,1/pitchC)))))}}{{Simplecalc|type=hidden|id=pitchQInit|formula=if(direct,pitchDist/(AH*speedTarget*recImindH),1-pow(-pitchE/(pitchA*(speedTarget-pitchD)*pitchC)*pitchInitC,1/pitchC))}}{{Simplecalc|type=hidden|id=pitchCosInit|formula=if(targetVertical,1,cos(pitchInit))}}{{Simplecalc|type=hidden|id=pitchHInit|formula=1-pitchQInit}}{{Simplecalc|type=hidden|id=pitchFInit|formula=pitchA*(1-pow(pitchHInit,pitchC))*(speedTarget*sin(pitchInit)-pitchD)+pitchE*log(pitchHInit)-dY}}{{Simplecalc|type=hidden|id=pitchLInit|formula=pitchA*pitchC*pow(pitchHInit,pitchC-1)*(speedTarget*sin(pitchInit)-pitchD)-pitchE/pitchHInit}}{{Simplecalc|type=hidden|id=pitchDenInit|formula=pitchA*speedTarget*(1-pow(pitchHInit,pitchC))*pitchCosInit+pitchQInit*sin(pitchInit)/pitchCosInit*pitchLInit}}{{Simplecalc|type=hidden|id=pitchIterA|formula=if(targetVertical,pitchInit,pitchInit-pitchFInit/pitchDenInit)}}{{Simplecalc|type=hidden|id=pitchCosA|formula=if(targetVertical,1,cos(pitchIterA))}}{{Simplecalc|type=hidden|id=pitchQA|formula=if(targetVertical,pitchQInit*pitchQInit*pitchLInit/(pitchQInit*pitchLInit+pitchFInit),pitchB/pitchCosA)}}{{Simplecalc|type=hidden|id=pitchHA|formula=1-pitchQA}}{{Simplecalc|type=hidden|id=pitchFA|formula=pitchA*(1-pow(pitchHA,pitchC))*(speedTarget*sin(pitchIterA)-pitchD)+pitchE*log(pitchHA)-dY}}{{Simplecalc|type=hidden|id=pitchLA|formula=pitchA*pitchC*pow(pitchHA,pitchC-1)*(speedTarget*sin(pitchIterA)-pitchD)-pitchE/pitchHA}}{{Simplecalc|type=hidden|id=pitchDenA|formula=pitchA*speedTarget*(1-pow(pitchHA,pitchC))*pitchCosA+pitchQA*sin(pitchIterA)/pitchCosA*pitchLA}}{{Simplecalc|type=hidden|id=pitchIterB|formula=if(targetVertical,pitchIterA,pitchIterA-pitchFA/pitchDenA)}}{{Simplecalc|type=hidden|id=pitchCosB|formula=if(targetVertical,1,cos(pitchIterB))}}{{Simplecalc|type=hidden|id=pitchQB|formula=if(targetVertical,pitchQA*pitchQA*pitchLA/(pitchQA*pitchLA+pitchFA),pitchB/pitchCosB)}}{{Simplecalc|type=hidden|id=pitchHB|formula=1-pitchQB}}{{Simplecalc|type=hidden|id=pitchFB|formula=pitchA*(1-pow(pitchHB,pitchC))*(speedTarget*sin(pitchIterB)-pitchD)+pitchE*log(pitchHB)-dY}}{{Simplecalc|type=hidden|id=pitchLB|formula=pitchA*pitchC*pow(pitchHB,pitchC-1)*(speedTarget*sin(pitchIterB)-pitchD)-pitchE/pitchHB}}{{Simplecalc|type=hidden|id=pitchDenB|formula=pitchA*speedTarget*(1-pow(pitchHB,pitchC))*pitchCosB+pitchQB*sin(pitchIterB)/pitchCosB*pitchLB}}{{Simplecalc|type=hidden|id=pitchIterC|formula=if(targetVertical,pitchIterB,pitchIterB-pitchFB/pitchDenB)}}{{Simplecalc|type=hidden|id=pitchCosC|formula=if(targetVertical,1,cos(pitchIterC))}}{{Simplecalc|type=hidden|id=pitchQC|formula=if(targetVertical,pitchQB*pitchQB*pitchLB/(pitchQB*pitchLB+pitchFB),pitchB/pitchCosC)}}{{Simplecalc|type=hidden|id=pitchHC|formula=1-pitchQC}}{{Simplecalc|type=hidden|id=pitchFC|formula=pitchA*(1-pow(pitchHC,pitchC))*(speedTarget*sin(pitchIterC)-pitchD)+pitchE*log(pitchHC)-dY}}{{Simplecalc|type=hidden|id=pitchLC|formula=pitchA*pitchC*pow(pitchHC,pitchC-1)*(speedTarget*sin(pitchIterC)-pitchD)-pitchE/pitchHC}}{{Simplecalc|type=hidden|id=pitchDenC|formula=pitchA*speedTarget*(1-pow(pitchHC,pitchC))*pitchCosC+pitchQC*sin(pitchIterC)/pitchCosC*pitchLC}}{{Simplecalc|type=hidden|id=pitchIterD|formula=if(targetVertical,pitchIterC,pitchIterC-pitchFC/pitchDenC)}}{{Simplecalc|type=hidden|id=pitchCosD|formula=if(targetVertical,1,cos(pitchIterD))}}{{Simplecalc|type=hidden|id=pitchQD|formula=if(targetVertical,pitchQC*pitchQC*pitchLC/(pitchQC*pitchLC+pitchFC),pitchB/pitchCosD)}}{{Simplecalc|type=hidden|id=pitchHD|formula=1-pitchQD}}{{Simplecalc|type=hidden|id=pitchFD|formula=pitchA*(1-pow(pitchHD,pitchC))*(speedTarget*sin(pitchIterD)-pitchD)+pitchE*log(pitchHD)-dY}}{{Simplecalc|type=hidden|id=pitchLD|formula=pitchA*pitchC*pow(pitchHD,pitchC-1)*(speedTarget*sin(pitchIterD)-pitchD)-pitchE/pitchHD}}{{Simplecalc|type=hidden|id=pitchDenD|formula=pitchA*speedTarget*(1-pow(pitchHD,pitchC))*pitchCosD+pitchQD*sin(pitchIterD)/pitchCosD*pitchLD}}{{Simplecalc|type=hidden|id=pitchIterE|formula=if(targetVertical,pitchIterD,pitchIterD-pitchFD/pitchDenD)}}{{Simplecalc|type=hidden|id=pitchCosE|formula=if(targetVertical,1,cos(pitchIterE))}}{{Simplecalc|type=hidden|id=pitchQE|formula=if(targetVertical,pitchQD*pitchQD*pitchLD/(pitchQD*pitchLD+pitchFD),pitchB/pitchCosE)}}{{Simplecalc|type=hidden|id=pitchHE|formula=1-pitchQE}}{{Simplecalc|type=hidden|id=pitchFE|formula=pitchA*(1-pow(pitchHE,pitchC))*(speedTarget*sin(pitchIterE)-pitchD)+pitchE*log(pitchHE)-dY}}{{Simplecalc|type=hidden|id=pitchLE|formula=pitchA*pitchC*pow(pitchHE,pitchC-1)*(speedTarget*sin(pitchIterE)-pitchD)-pitchE/pitchHE}}{{Simplecalc|type=hidden|id=pitchDenE|formula=pitchA*speedTarget*(1-pow(pitchHE,pitchC))*pitchCosE+pitchQE*sin(pitchIterE)/pitchCosE*pitchLE}}{{Simplecalc|type=hidden|id=pitchIterF|formula=if(targetVertical,pitchIterE,pitchIterE-pitchFE/pitchDenE)}}{{Simplecalc|type=hidden|id=pitchCosF|formula=if(targetVertical,1,cos(pitchIterF))}}{{Simplecalc|type=hidden|id=pitchQF|formula=if(targetVertical,pitchQE*pitchQE*pitchLE/(pitchQE*pitchLE+pitchFE),pitchB/pitchCosF)}}{{Simplecalc|type=hidden|id=pitchHF|formula=1-pitchQF}}{{Simplecalc|type=hidden|id=pitchFF|formula=pitchA*(1-pow(pitchHF,pitchC))*(speedTarget*sin(pitchIterF)-pitchD)+pitchE*log(pitchHF)-dY}}{{Simplecalc|type=hidden|id=pitchLF|formula=pitchA*pitchC*pow(pitchHF,pitchC-1)*(speedTarget*sin(pitchIterF)-pitchD)-pitchE/pitchHF}}{{Simplecalc|type=hidden|id=pitchDenF|formula=pitchA*speedTarget*(1-pow(pitchHF,pitchC))*pitchCosF+pitchQF*sin(pitchIterF)/pitchCosF*pitchLF}}{{Simplecalc|type=hidden|id=pitchTarget|formula=if(targetVertical,pitchIterF,pitchIterF-pitchFF/pitchDenF)}}{{Simplecalc|type=hidden|id=pitchCosTarget|formula=if(targetVertical,1,cos(pitchTarget))}}{{Simplecalc|type=hidden|id=pitchQTarget|formula=if(targetVertical,pitchQF*pitchQF*pitchLF/(pitchQF*pitchLF+pitchFF),pitchB/pitchCosTarget)}}{{Simplecalc|type=hidden|id=pitchTimeBase|formula=1-pitchQTarget}}{{Simplecalc|type=hidden|id=pitchCond|formula=abs(pitchA*(1-pow(pitchTimeBase,pitchC))*(speedTarget*sin(pitchTarget)-pitchD)+pitchE*log(pitchTimeBase)-dY)}}{{Simplecalc|type=hidden|id=pitchPhysical|formula=and(ifgreater(pitchTimeBase,0,1,0),ifless(pitchTimeBase,1,1,0))}}{{Simplecalc|type=hidden|id=pitchHit|formula=and(ifless(pitchCond,1/1e5,1,0),pitchPhysical)}}{{Simplecalc-hideifzero|formula=pitchHit|{{Simplecalc|type=plain|id=pitchTargetDeg|formula=-180/pi*pitchTarget+{{{pitchmodifier|0}}}|size=6|decimals=3}} deg}}{{Simplecalc-hideifzero|formula=ifzero(pitchHit,1,0)|Unreachable}}<br>{{Simplecalc|type=checkbox|id=direct|default=1}} {{Simplecalc label|Direct hit|for=direct}} | ||
{{Simplecalc|type=hidden|id= | |||
{{Simplecalc|type=hidden|id= | |||
{{Simplecalc-hideifzero|formula= | |||
|- | |- | ||
! Z | ! Z | ||
| {{#if: {{{hidedynamics|}}} | style{{=}}"white-space: nowrap;" {{!}} {{Simplecalc|type=number|id=pzInit|size=3|default={{{z0|0}}}|decimals=3}} | | {{#if: {{{hidedynamics|}}} | style{{=}}"white-space: nowrap;" {{!}} {{Simplecalc|type=number|id=pzInit|size=3|default={{{z0|0}}}|decimals=3}} to | }}{{Simplecalc|type=number|id=pzTarget|size={{#if: {{{hidedynamics|}}} | 3 | 6 }}|default={{{zt|10}}}|decimals=3}} | ||
! Speed{{#if: {{{speednote|}}} | {{note|group=calcnote|name=entitySpeedNote|{{{speednote}}}}} }} | ! Speed{{#if: {{{speednote|}}} | {{note|group=calcnote|name=entitySpeedNote|{{{speednote}}}}} }} | ||
| style{{=}}"white-space: nowrap;" | {{Simplecalc|type=number|id=speedTarget|min=0|size=6|step=0.01|default={{{speedt|{{{speed|3}}}}}}|decimals=3}} m/tick | | style{{=}}"white-space: nowrap;" | {{Simplecalc|type=number|id=speedTarget|min=0|size=6|step=0.01|default={{{speedt|{{{speed|3}}}}}}|decimals=3}} m/tick | ||