sin în Kotlin

Funcțiile trigonometrice sinus și cosinus; unghiul se dă în radiani, nu în grade.

Sintaxă
import kotlin.math.*
fun sin(x: Double): Double
fun cos(x: Double): Double
fun tan(x: Double): Double
fun atan2(y: Double, x: Double): Double

Ce face sin

sin(x) și cos(x) primesc un unghi în radiani. Pentru grade, transformă întâi: grade * PI / 180. Rezultatul este între -1 și 1. Mai există tan, funcțiile inverse asin, acos, atan și atan2(y, x), care dă unghiul unui punct.

Calculele în virgulă mobilă nu sunt perfect exacte: sin(PI) nu este exact 0, ci un număr foarte mic (aproximativ 1.2 × 10-16). Rotunjește la afișare.

Parametri

Parametru Descriere
x Unghiul în radiani.

Ce returnează

Un Double între -1 și 1 (pentru sin și cos).

Exemple

Exemplul 1: Valori pentru unghiuri cunoscute

Unghiurile sunt date în grade și transformate în radiani. Formatăm la 4 zecimale ca să ascundem erorile mici.

import java.util.Locale
import kotlin.math.PI
import kotlin.math.cos
import kotlin.math.sin

fun main() {
    for (grade in listOf(0, 30, 45, 60, 90)) {
        val r = grade * PI / 180
        println("$grade°: sin=%.4f, cos=%.4f".format(Locale.ROOT, sin(r), cos(r)))
    }
}

Rezultat

0°: sin=0.0000, cos=1.0000
30°: sin=0.5000, cos=0.8660
45°: sin=0.7071, cos=0.7071
60°: sin=0.8660, cos=0.5000
90°: sin=1.0000, cos=0.0000

Exemplul 2: sin(PI) nu este exact zero

Rezultatul este un număr foarte mic, nu 0, din cauza preciziei limitate a lui Double.

import kotlin.math.PI
import kotlin.math.abs
import kotlin.math.sin

fun main() {
    println(sin(PI))
    println(sin(PI) == 0.0)
    println(abs(sin(PI)) < 1e-10)
}

Rezultat

1.2246467991473532E-16
false
true

Exemplul 3: Înălțimea unei clădiri

Stai la 40 m de clădire și vezi vârful sub un unghi de 35°. Înălțimea este distanța înmulțită cu tangenta unghiului.

import java.util.Locale
import kotlin.math.PI
import kotlin.math.cos
import kotlin.math.sin

fun main() {
    val distanta = 40.0
    val unghi = 35 * PI / 180
    val inaltime = distanta * sin(unghi) / cos(unghi)
    println("Înălțimea: %.1f m".format(Locale.ROOT, inaltime))
}

Rezultat

Înălțimea: 28.0 m

Greșeli frecvente

  • Scrii sin(90.0) așteptând 1. Funcția primește radiani; scrie sin(90 * PI / 180).
  • Compari rezultatul trigonometric cu ==. Folosește o toleranță: abs(a - b) < 1e-9.

Comenzi înrudite

  • PI: Constantele matematice π (PI, raportul dintre circumferință și diametru) și e (E, baza logaritmului natural).
  • sqrt: sqrt calculează rădăcina pătrată, pow ridică la putere (2.0.pow(3) = 8.0), hypot dă ipotenuza.
  • abs: abs returnează valoarea absolută a unui număr (fără semn); sign spune dacă numărul e negativ, zero sau pozitiv.