G'day everyone. This is my latest tutorial and will be CRUCIAL for you to understand it for when I do part II. All this does is return results for an angle supplied using the formulas sin, cos and tan.
This will eventually turn into a complete trigonometry tutorial. I am at school now so it might be a few weeks away.
Starting out with Trigonometry in PHP
Aim: To get a user to enter a value and a script will determine the cosine, sine and tangent.
Hypothesis: A user will enter a value between 1-90 and it will be converted to radians so it can be calculated correctly. The script will then output an answer to the chosen radio button, cosine, sine and tangent. In other words save them from using a calculator or an image like;
[img] http://upload.wikimedia.org/wikipedi..._functions.svg [/img]
Procedure:
Let’s get started by creating the interface the user will be using. I won’t be explaining this since you should have a knowledge of HTML.
Here is the code for it:
Save that as form.php. Make sure it is spelt exactly the same.Code:<?php
function formInput() {
?>
<center>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p>
Please input the number you wish to work with. Make sure it is in degrees!
</p>
<p>
<input type="text" name="val" />
</p>
<p>
<input type="radio" name="opt" value="sin" /> Sine (sin) <br />
<input type="radio" name="opt" value="cos" /> Cosine (cos) <br />
<input type="radio" name="opt" value="tan" /> Tangent (tan)
</p>
<p>
<input type="submit" name="submit" value="Submit" />
</p>
</center>
<?php
}
?>
Just a brief description on the PHP section of this. The first part we are creating a function called formInput, something you might find quite unusual is that the opening tag is at the top of the file in a separate set of PHP tags to the closing tag. The reason for this is to make sure PHP outputs the HTML correctly you have to use;
This can be really annoying because of all the speech marks in the HTML, we could easily replace them with ‘ or even use the escape “\” but that means more programming. Here it is done quick and simple.Code:Echo “HTML HERE”;
Now the second part is with the action of the form. In a quick summary all it is doing is telling that the action of the form is to use itself. So instead of using another file it will use its own.
Next is the hardest part, yet really easy, of the script. The functions which will do the magic for us all, remember these functions have no use till they are used. This will be shown in the section of this tutorial. Here is the script;
The three functions here do the calculations for you, at the start of the last three functions it checks to make sure the value entered is under 90 and over than 1 it shows an error message. If it passes the error check it will do the calculations.Code:<?php
function sinAns($val) {
if ($val > 360 || $val <= 0) {
echo "Allowed number are only between 1 and 360.";
} else {
$ans = sin(deg2rad($val));
echo $ans;
}
}
function cosAns($val) {
if ($val > 360 || $val <= 0) {
echo "Allowed number are only between 1 and 360.";
} else {
$ans = cos(deg2rad($val));
echo $ans;
}
}
function tanAns($val) {
if ($val > 90 || $val <= 0) {
echo "Allowed number are only between 1 and 90.";
} else {
$ans = tan(deg2rad($val));
echo $ans;
}
}
?>
Now let’s get on with one of the functions that do the calculations.
As above, the first line declares the function and opens the function code. The last line also closes off the functions code. The second line is yet another if statement. But this time it does something different. Since the $val has passed as the user has entered something, this time it will check if it between the correct numbers, 1 and 90. If it doesn’t it will show an error message. Next is the actual calculations, as long as the $val passes between the numbers 1 and 90, it will calculate. Sin, cos and tan are built in functions into PHP. The next part of the function then turns the value $val from degrees to radians so it can be calculated properly. It then echo’s the answer.Code:function sinAns($val) {
if ($val < 90 || $val >= 0) {
echo "$opt can only be used with a number between 1 and 90.";
} else {
echo sin(deg2rad($val));
}
}
Now save this file as functions.php. Next is the file which processes all the functions and values.
Create a new PHP file and save it as index.php. This is the main part of the code. Here it is;
OK let’s start with explaining the code. The first few lines require the two files that we have typed earlier so that the functions can be called in this file.Code:<?php
require "functions.php";
require "form.php";
if(!isset($_POST['submit'])) {
formInput();
} else {
switch ($opt) {
case "sin":
sinAns($val);
break;
case "cos":
cosAns($val);
break;
case "tan":
tanAns($val);
break;
}
echo "<br /><a href='index.php'>Another calculation</a>";
}
?>
The rest of the code is an if statement. If the user has not clicked on the submit button, it will do the function “formInput()”. As you can see we typed this in “form.php” a while ago which is the interface for the user. If they have clicked on it, it will do a switch statement. The switch statement is based on the value of $opt. Each case is a possibility of what it can be. So let’s say that the user chose “sin” it will do the function sinAns using $val as the value to be used. The break statement then closes that case.
The last echo statement gives the user to do another calculation.
Conclusion: Now you have completely working sin, cos and tan calculator
+rep if you found this helpful.
Last edited by Brandon W; 10-11-2008 at 03:09 PM.
jQuery Selectors Tutorial - jQuery Striped Table tutorial - jQuery Events - jQuery Validation
Sorry if I don't post as often as I did, I'll try to get here as much as possible! I'm working my bum off to get this scholarship and other stuff!
Some comments/questions:
It's important for people to be aware that EVERY programming language uses radian based trig functions (because of calculus and its relation to the sciences). As a result, to accommodate degrees, it is necessary to use a conversion like the one Brandon used.
That said, why did you limit the angle to 1-90? Sin and Cos are defined for all angles, and it is easy to test for the values where Tan is undefined.
So Sin and Cos can be from 0 - 360 degrees?
jQuery Selectors Tutorial - jQuery Striped Table tutorial - jQuery Events - jQuery Validation
Sorry if I don't post as often as I did, I'll try to get here as much as possible! I'm working my bum off to get this scholarship and other stuff!
Wow, that's really well written.
Yeah sin, cos can be used with any angle.![]()
sin and cos are defined on ALL real numbers.
tan is defined for all x where x is not in the form (2n+1)pi/2, n an integer (pi/2, 3pi/2, 5pi/2, etc)
Nice work Brandon W! +rep (if you want contest points please PM me).
No thanks +rep will do. I want to be Guru
Thanks for that Winged, I will change the code now. I was only working with Right-Angled Triangles.
jQuery Selectors Tutorial - jQuery Striped Table tutorial - jQuery Events - jQuery Validation
Sorry if I don't post as often as I did, I'll try to get here as much as possible! I'm working my bum off to get this scholarship and other stuff!
You'll get the circle-based definition of the trig functions soon![]()
Trig with Circles/Waves
I would +rep you for this, but I can't atm. I did for something else, and have to wait.
Doesn't bother me mate it's all good
Hmmm, that should be this term of Maths. We are doing Algebra 3 and Deductive GeometrySounds interesting, I can't wait! We have started Algebra 3 just not the Geometry section.
jQuery Selectors Tutorial - jQuery Striped Table tutorial - jQuery Events - jQuery Validation
Sorry if I don't post as often as I did, I'll try to get here as much as possible! I'm working my bum off to get this scholarship and other stuff!
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks