<< Chapter < Page | Chapter >> Page > |
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> |
Notification Switch
Would you like to follow the 'Accessible physics concepts for blind students' conversation and receive update notifications?