Math.sin() в JavaScript — синус кута


Загальний опис

Метод Math.sin() у JavaScript є частиною вбудованого об'єкта Math і використовується для обчислення синуса заданого числа. В основі його корисності лежить можливість використовувати його для різних математичних та наукових розрахунків, таких як робота з тригонометричними функціями.

Використання методу Math.sin() є відносно простим. Вам потрібно передати одне число (в радіанах) як аргумент, і метод поверне синус цього числа.

let angle = Math.PI / 4;  // 45 градусів в радіанах
let result = Math.sin(angle);
console.log(result);  // Виведе приблизно 0.7071067811865475

Щоб отримати значення синуса для кута в градусах, спершу потрібно конвертувати градуси в радіани:

function degreesToRadians(degrees) {
    return degrees * (Math.PI / 180);
}

let angleInDegrees = 30;
let result = Math.sin(degreesToRadians(angleInDegrees));
console.log(result);  // Виведе 0.5, оскільки sin(30°) = 0.5

Деякі важливі особливості Math.sin():

  • Метод завжди повертає результат у діапазоні від -1 до 1.
  • Якщо аргумент є NaN або відсутній, метод також поверне NaN.
  • Пам'ятайте про необхідність конвертації градусів в радіани, коли ви працюєте з тригонометричними функціями в JavaScript.
автор: Bond

Порада

Якщо вам потрібно швидко отримати синус і косинус одного й того ж числа, використовуйте спільні тригонометричні властивості для оптимізації обчислень. Наприклад, використовуючи відомість, що Math.cos(x) = Math.sin(x + Math.PI/2), ви можете зменшити кількість викликів до тригонометричних функцій.

автор: Bond
Нотатка

Пам'ятайте, що метод Math.sin() приймає аргумент в радіанах, а не градусах. Щоб перетворити градуси в радіани, використовуйте формулу радіани = градуси * (Math.PI / 180).

автор: Bond
Нотатка

Під час використання Math.sin() у математичних обчисленнях зверніть увагу на точність. Через обмеження машинної точності результат може відрізнятися від очікуваного, особливо для дуже великих або маленьких значень.

автор: Bond
Нотатка

Використовуючи Math.sin(), ви можете створювати анімації на основі синусоїдальних хвиль. Це корисно для імітації природних рухів, таких як коливання або пульсація.

let t = 0;
setInterval(() => {
   let value = Math.sin(t);
   // використовуйте value для анімації елемента
   t += 0.05;
}, 50);
автор: Bond

Синтаксис

Math.sin(x)

Параметри

x

Число, яке представляє кут у радіанах.

автор: Bond

Повернення

sine

Повертає синус числа x, значення якого знаходиться в межах від -1 до 1 включно. Якщо x є Infinity, -Infinity або NaN, то повертає NaN.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 3 12 3
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.10.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі ми створюємо анімаційний ефект "дихання" для елемента на веб-сторінці. Використовуючи Math.sin(), ми змінюємо розмір елемента так, щоб він "дихав" (збільшувався та зменшувався в ритмі синусоїди).

HTML

<div id="breathingElement">Демонстраційний елемент</div>

JS

let element = document.getElementById('breathingElement'); // Отримання елемента за його ID
let t = 0;

setInterval(() => {
    let scale = 1 + 0.1 * Math.sin(t); // Зміна розміру на основі синусоїди

    // Встановлення нового розміру елемента
    element.style.transform = `scale(${scale})`;

    t += 0.1; // Збільшення значення t для наступного кроку анімації
}, 50);
автор: Bond

У цьому прикладі ми переводимо градуси в радіани та виводимо синус кута.

// Функція для перетворення градусів у радіани
function toRadians(degrees) {
    return degrees * (Math.PI / 180);
}

let angleInDegrees = 45;
let angleInRadians = toRadians(angleInDegrees);

// Обчислення синуса кута
let sinValue = Math.sin(angleInRadians);

console.log(`Синус кута ${angleInDegrees} градусів дорівнює ${sinValue}`);
автор: Bond

У цьому прикладі користувач може ввести кут у градусах, а потім натиснути кнопку, щоб обчислити синус цього кута. Результат обчислення буде відображено на екрані.

HTML

<header>
  <h2 class="title">Math.sin()</h2>
  <p class="description">Обчислює синус числа (значення подається в радіанах).</p>
</header>
<main>
  <div class="result">
    <label for="degreesInput">Введіть кут у градусах:</label>
    <input type="number" id="degreesInput" value="30">
    <button onclick="calculateSin()">Обчислити синус</button>
    <p>Синус кута: <span id="resultValue">0.5</span></p>
  </div>
</main>

CSS

body {
  font-size: 16px;
  line-height: 1.5;
  font-family: monospace;
}

header {
  background-color: #f1f1f1;
  margin-bottom: 25px;
  padding: 15px;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}

header h2.title {
  padding-bottom: 15px;
  border-bottom: 1px solid #999;
}

header p.description {
  font-style: italic;
  color: #222;
}

.result {
  background-color: #f8f8f8;
  padding: 15px;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}

input, button {
  margin-top: 10px;
}

JS

function calculateSin() {
  const degrees = parseFloat(document.getElementById('degreesInput').value);
  const radians = degrees * (Math.PI / 180);
  const sinValue = Math.sin(radians).toFixed(4); // заокруглюємо до 4 знаків після коми
  document.getElementById('resultValue').textContent = sinValue;
}
//# sourceURL=pen.js
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід