<< Chapter < Page Chapter >> Page >

Declare and initialize variables

The code in Listing 1 begins by declaring and initializing variables named velocity and distance . Note that the units are shown in the comments. I recommend that you always dothat in order to keep the units straight.

Perform the arithmetic

Then Listing 1 declares a variable named time and sets its value equal to distance divided by velocity . Once again, note the treatment of the units in the comments, showing that the units for the result of the division are hours.

Display the results

Finally, Listing 1 calls the document.write method several times in succession to display the results shown in Figure 1 .

An exercise on average velocity

A hockey puck is struck by a player causing it to travel northeast at a uniform velocity of 50 feet per second for 15 feet, at which point it is struck by another player.

When struck by the second player, the direction of motion is changed to northwest witha uniform velocity of 60 feet per second.

It is stopped by a third player after traveling 20 feet in the northwest direction.

  • What is the time required for the puck to complete each leg of its journey?
  • What is the average velocity of the puck from the start to the end of its journey?

Vector diagram for the hockey puck

Figure 2 shows a vector diagram for the hockey puck.

Figure 2 - Vector diagram for the hockey puck.

Missing image.

Let's write a script to solve the problem

Please copy the code from Listing 2 into an html file and open it in your browser.

Listing 2 . An exercise on average velocity.

<!---------------- File JavaScript02.html ---------------------><html><body><script language="JavaScript1.3">document.write("Start Script<br/>"); //The purpose of this function is to receive the adjacent// and opposite side values for a right triangle and to // return the angle in degrees in the correct quadrant.function getAngle(x,y){ if((x == 0)&&(y == 0)){ //Angle is indeterminate. Just return zero.return 0; }else if((x == 0)&&(y>0)){ //Avoid divide by zero denominator.return 90; }else if((x == 0)&&(y<0)){ //Avoid divide by zero denominator.return -90; }else if((x<0)&&(y>= 0)){ //Correct to second quadrantreturn Math.atan(y/x)*180/Math.PI + 180; }else if((x<0)&&(y<= 0)){ //Correct to third quadrantreturn Math.atan(y/x)*180/Math.PI + 180; }else{//First and fourth quadrants. No correction required. return Math.atan(y/x)*180/Math.PI;}//end else }//end function getAngle//Compute the time required to traverse each leg. Identify // the two legs as A and B.var vecAmag = 15;//displacement in feet var vecAang = 45;//displacement angle in degreesvar vecAvel = 50;//velocity magnitude in feet per second var timeA = vecAmag/vecAvel;//feet/(feet/second) = secondsvar vecBmag = 20;//displacement in feet var vecBang = 135;//displacement angle in degreesvar vecBvel = 60;//velocity magnitude in feet per second var timeB = vecBmag/vecBvel;//feet/(feet/second) = seconds//Compute the overall displacement //Compute the horizontal and vertical components// of each vector. var vecAh = vecAmag*Math.cos(vecAang*Math.PI/180);var vecAv = vecAmag*Math.sin(vecAang*Math.PI/180); var vecBh = vecBmag*Math.cos(vecBang*Math.PI/180);var vecBv = vecBmag*Math.sin(vecBang*Math.PI/180); //Compute the sums of the horizontal and vertical// components from the two vectors to get the // horizontal and vertical component of the// resultant vector. var vecResultH = vecAh + vecBh;var vecResultV = vecAv + vecBv; //Use the Pythagorean theorem to compute the magnitude of the// resultant vector in feet. var vecResultMag = Math.sqrt(Math.pow(vecResultH,2) +Math.pow(vecResultV,2)); //Compute the angle of the resultant vector in degrees.vecResultAng = getAngle(vecResultH,vecResultV); var totalTime = timeA + timeB;//secondsvar vecVelMag = vecResultMag/totalTime;//feet/second var vecVelAng = vecResultAng;//degreesdocument.write("Time for leg A = " + timeA.toFixed(2) + " seconds<br/>"); document.write("Time for leg B = " + timeB.toFixed(2) +" seconds<br/>"); document.write("Displacement magnitude = " +vecResultMag.toFixed(2) + " feet<br/>"); document.write("Displacement angle = " +vecResultAng.toFixed(2) + " degrees<br/>"); document.write("Total time = " + totalTime.toFixed(2) +" seconds<br/>"); document.write("Average velocity magnitude = " +vecVelMag.toFixed(2) + " feet/second<br/>"); document.write("Average velocity angle = " +vecVelAng.toFixed(2) + " degrees<br/>"); document.write("End Script");</script></body></html>

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Game 2302 - mathematical applications for game development. OpenStax CNX. Jan 09, 2016 Download for free at https://legacy.cnx.org/content/col11450/1.33
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Game 2302 - mathematical applications for game development' conversation and receive update notifications?

Ask