Математическият клас в Java съдържа много математически функции. Тригонометричните функции са сред най-важните функции за програмиране. Една от тези функции е Math.cos() .
Тригонометрия за програмиране?
Разбира се, има програмисти, които почти никога не срещат тригонометрични функции в работата си, но въпреки това за много задачи тези функции са изключително важни. Например за компютърна графика or логика на играта. По-специално, синусите и косинусите участват в така наречената ротационна матрица, която можете да използвате за завъртане на обекти и светове. И ако трябва да изчислите дължината на пътя по картата, тригонометричните функции могат да ви бъдат полезни.Метод Math.cos() в Java
Методът double cos (double x) на клас Math връща косинусовата стойност на x , където x е аргумент, ъгъл в радиани . Ето декларация на метода Java.lang.Math.cos() :
double cos(double x)
Ако не ви е удобно да изчислявате ъгли в радиани, можете да използвате специалната функция за преобразуване на радиани в градуси:
double toDegrees(double angRad)
Има и обратна функция, която преобразува градуси в радиани, което също може да бъде полезно.
double toRadians(double angDeg)
Ето примерен code на java.lang.Math.cos() :
public class CosExample {
public static void main(String[] args) {
int x1 = 1;
double x2 = 0.5;
double x3 = Math.PI;
//using java.lang.Math.cos() for 1, 0.5 and PI rad
System.out.println("cosine of " + x1 + " rads = " + Math.cos(x1));
System.out.println("cosine of " + x2 + " rads = " + Math.cos(0));
System.out.println("cosine " + x3 + " rads = " + Math.exp(x3));
//here we declare an 60 degrees angle
double degree = 60;
//here we use Math.toRadians to convert 60 degrees to radians, use the cos() method
//to calculate the cosine of 60 degrees angle and print the result out
System.out.println("cosine of " + degree + " degrees = " + Math.cos(Math.toRadians(degree)));
}
}
Резултатът е:
косинус от 1 рад = 0,5403023058681398 косинус от 0,5 рада = 1,0 косинус 3,141592653589793 рад = 23,140692632779267 косинус от 60,0 градуса = 0,50000000000000001
Някои специални случаи
В математиката има понятия за неопределена форма, положителна и отрицателна безкрайност. Число, разделено на 0,0, дава безкрайност, положителна or отрицателна в зависимост от положителността or отрицателността на това число. Можете да получите неопределена форма по различни начини. Например, ако се опитате да разделите нула на нула or безкрайност на безкрайност. В Java има специални константи от клас Double като Double.NaN (не е число, може да кажете, че е вид неопределена форма), Double.POSITIVE_INFINITY и Double.NEGATIVE_INFINITY. Методът Math.cos() се държи по специфичен начин, когато е изпequals пред тези три концепции. Ако аргументът е NaN or безкрайност, тогава Math.cos() е NaN. Нека имаме пример за code:
public class CosSpecialCases {
public static void main(String[] args) {
double positiveInfinity = Double.POSITIVE_INFINITY;
double negativeInfinity = Double.NEGATIVE_INFINITY;
double nan = Double.NaN;
//The argument is positive infinity, the output is NaN
System.out.println(Math.cos(positiveInfinity));
//The argument is negative infinity, the output NaN
System.out.println(Math.cos(negativeInfinity));
//The argument is NaN, the output is NaN
System.out.println(Math.cos(nan));
}
}
Резултатът е:
NaN NaN NaN
Задача за синус и косинус за начинаещи
Опитайте се да програмирате движението на стрелките на часовника с помощта на Math.cos() и Math.sin() . Можете също така да прикачите графики (с помощта на обработка, JavaFX or нещо друго) към тази задача и ще получите анимиран часовник.
Още четене: |
---|
GO TO FULL VERSION