This page is optimized for mobile devices, if you would prefer the desktop version just click here

0.10 Phy1070: motion -- uniform and relative velocity  (Page 7/13)

Figure 6 . Mirror image contained in the file named Phy1070b1.svg

JavaScript code

Please copy the code shown in Listing 3 into an html file and open the file in your browser.

Listing 3 . Exercise #1 for a man on a train.
<!---------------- File JavaScript03.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//------------------------------------------------------------// //The purpose of this function is to add two vectors, given// the magnitude and angle (in degrees) for each vector. // The magnitude and angle (in degrees) of the resultant// vector is returned in a two-element array, with the // magnitude in the element at index 0 and the angle in the// element at index 1. Note that this function calls the // getAngle function, which must also be provided in the// script. To use this function to subtract one vector from // another, add 180 degrees to the angle for the subtrahend// vector before passing the angle to the function. To use // this function to add more than two vectors, add the first// two vectors as normal, then add the output from this // function to the third vector, etc., until all of the// vectors have been included in the sum. function vectorSum(vecAmag,vecAang,vecBmag,vecBang){var vecResult = new Array(2); //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. vecResult[0]= Math.sqrt(Math.pow(vecResultH,2) + Math.pow(vecResultV,2));//Compute the angle of the resultant vector in degrees. vecResult[1]= getAngle(vecResultH,vecResultV); return vecResult;}//end vectorSum function //------------------------------------------------------------////The main script body begins here. //Establish the magnitude and angle for each vector.var vecTrainMag = 1;//magnitude of velocity of train in miles/hr var vecTrainAng = 0;//angle of velocity of train in degreesvar vecManMag = 2.933*3600*(1/5280);//Magnitude of velocity of // man (ft/sec)*(sec/hr)*(mile/ft)// = miles/hour var vecManAng = 0;//angle of velocity of man in degrees//Add the two vectors var resultant = vectorSum(vecTrainMag,vecTrainAng,vecManMag,vecManAng); //Display the magnitude and direction of the resultant vector.document.write("Velocity magnitude = " + resultant[0].toFixed(2) + " miles/hour</br>"); document.write("Velocity angle = " +resultant[1].toFixed(2) + " degrees</br>"); document.write("End Script");</script></body></html>
<< Chapter < Page Page > Chapter >>

Read also:

OpenStax, Accessible physics concepts for blind students. OpenStax CNX. Oct 02, 2015 Download for free at https://legacy.cnx.org/content/col11294/1.36
Google Play and the Google Play logo are trademarks of Google Inc.
Jobilize.com uses cookies to ensure that you get the best experience. By continuing to use Jobilize.com web-site, you agree to the Terms of Use and Privacy Policy.