CSS atan() — арктангенс числа як кут


Опис

atan() - функція в математичній бібліотеці, яка використовується для обчислення арктангенсу кута між віссю абсцис і прямою, що проходить через точку (0, 0) і задану пару координат (y, x). Результат виражений у радіанах.

Функція atan() дозволяє знайти кут між віссю абсцис і прямою, що проходить через точку з координатами (0, 0) та точку з координатами (y, x). Повернутий кут може бути від -\pi/2 до \pi/2. Додатні значення вказують на кути в першій та четвертій чвертях, тоді як від'ємні значення вказують на кути в другій та третій чвертях.

Наприклад, якщо аргумент y дорівнює нулю, аргумент x дорівнює 1 (за замовчуванням), функція atan() поверне нуль.

Декілька прикладів коректного використання функції atan():

  • atan(1, 1) - обчислює арктангенс для координат (1, 1);
  • atan(0.5) - обчислює арктангенс для координат (0.5, 1) (за замовчуванням);
  • atan(y / x) - обчислює арктангенс для координат, заданих змінними y та x.

Функція atan() корисна для обчислення кутів, зокрема у випадках, коли потрібно визначити напрямок або поворот в елементах веб-сайту. Це дозволяє створити більш гнучкі та динамічні ефекти, що залежать від положення та розташування елементів на сторінці.

автор: Bond

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

автор: NagarD

Нотатка

Зверніть увагу, що в аргументі x необхідно вказувати ненульове значення, щоб уникнути ділення на нуль. Якщо ви хочете обчислити арктангенс за заданими значеннями y та x, переконайтеся, що x не рівний нулю.

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

Пам'ятайте, що результат функції atan() виражений у радіанах. Якщо вам потрібно вивести результат у градусах, використовуйте функцію deg() для конвертації.

автор: Bond

Синтаксис

atan(y, x);

Функція atan може отримувати 2 значень:

<number>

Аргументи y та x можуть бути будь-якими числовими значеннями, включаючи цілі числа, десяткові дроби та від'ємні числа.

автор: Bond

<expression>

Аргументи y та x також можуть бути виразами, які обчислюються до числових значень.

автор: Bond

Значення без задання: (0, 1)

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
111 108 15.4 97 111
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
111 111 108 15.4

Приклади

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

Він демонструє зміну повороту блоків в залежності від значення atan().

HTML

<div class="container">
  <div id="description">
    <h2>Приклад 2: зміна повороту блоків залежно від значення atan()</h2>
    <p>Він демонструє зміну повороту блоків в залежності від значення atan().</p>
  </div>
  <div id="result">
    <div class="box box0"><span>atan(0)</span></div>
    <div class="box box1"><span>atan(1)</span></div>
    <div class="box box2"><span>atan(2)</span></div>
  </div>
</div>

CSS

#description {
  background-color: #f2f2f2;
  padding: 20px;
  text-align: left;
  margin-bottom: 50px;
}

#description h2 {
  font-family: Arial, sans-serif;
  font-size: 24px;
  margin-bottom: 10px;
}

#description p {
  font-family: Arial, sans-serif;
  font-size: 16px;
  margin-bottom: 0;
}

#result {
  display: flex;
  justify-content: space-around;
  align-items: center;
}

.box {
  width: 100px;
  height: 100px;
  background-color: blue;
  margin: 10px;
  transition: transform 0.5s;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
}

.box0 {
  transform: rotate(atan(0));
}

.box1 {
  transform: rotate(atan(1));
}

.box2 {
  transform: rotate(atan(2));
}
автор: Bond

Зміна повороту блоку при наведенні курсору.

HTML

<div class="container">
  <div id="description">
    <h2>Приклад 1: зміна повороту блоку при наведенні</h2>
    <p>Зміна повороту блоку при наведенні курсору.</p>
  </div>
  <div id="result">
    <div class="box"></div>
  </div>
</div>

CSS

#description {
  background-color: #f2f2f2;
  padding: 20px;
  text-align: left;
  margin-bottom: 50px;
}

#description h2 {
  font-family: Arial, sans-serif;
  font-size: 24px;
  margin-bottom: 10px;
}

#description p {
  font-family: Arial, sans-serif;
  font-size: 16px;
  margin-bottom: 0;
}

#result {
  display: flex;
  justify-content: center;
  align-items: center;
}

.box {
  width: 100px;
  height: 100px;
  background-color: blue;
  transition: transform 0.5s;
}

.box:hover {
  transform: rotate(atan(1));
}
автор: Bond

У кожній коробці намальовано справжню діагональ, а поверх неї лежить смуга, повернута на atan(--dy / --dx). Смуга лягає рівно на діагональ — це і є перевірка, що кут порахований правильно. Остання коробка показує помилку: в atan() передано довжину, оголошення відкинуто, і смуга лишилася горизонтальною.

HTML

<div class="row">
    <figure>
        <div class="box r1"><i class="ray"></i></div>
        <figcaption>200 × 50 → atan(50 / 200) ≈ 14deg</figcaption>
    </figure>

    <figure>
        <div class="box r2"><i class="ray"></i></div>
        <figcaption>200 × 100 → atan(100 / 200) ≈ 26.6deg</figcaption>
    </figure>

    <figure>
        <div class="box r3"><i class="ray"></i></div>
        <figcaption>200 × 200 → atan(200 / 200) = 45deg</figcaption>
    </figure>

    <figure>
        <div class="box r4"><i class="ray"></i></div>
        <figcaption>200 × 300 → atan(300 / 200) ≈ 56.3deg</figcaption>
    </figure>

    <figure>
        <div class="box bad"><i class="ray"></i></div>
        <figcaption>atan(50px / 200px) — недійсне, повороту немає</figcaption>
    </figure>
</div>

<p class="head">Той самий кут через atan2 — але з довжинами, які atan не приймає:</p>
<div class="row">
    <figure>
        <div class="box r2"><i class="ray a2"></i></div>
        <figcaption>atan2(100px, 200px) ≈ 26.6deg — лягає так само</figcaption>
    </figure>
</div>

CSS

.row {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    align-items: flex-start;
}

.head {
    margin: 20px 0 8px;
    color: #5a6472;
    font-size: .9em;
}

figure {
    margin: 0;
    width: 210px;
}

figcaption {
    margin-top: 6px;
    color: #5a6472;
    font: 12px/1.35 ui-monospace, monospace;
}

.box {
    position: relative;
    width: 200px;
    background:
        linear-gradient(to bottom right,
            transparent calc(50% - 1px), #d64545 calc(50% - 1px),
            #d64545 calc(50% + 1px), transparent calc(50% + 1px)),
        #f6f9ff;
    border: 1px solid #b9c6d8;
}

.ray {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 6px;
    background: rgba(47, 111, 208, .75);
    transform-origin: left bottom;
    rotate: atan(0 - var(--dy) / var(--dx));
}

.r1 { height: 50px; --dx: 200; --dy: 50; }
.r2 { height: 100px; --dx: 200; --dy: 100; }
.r3 { height: 200px; --dx: 200; --dy: 200; }
.r4 { height: 300px; --dx: 200; --dy: 300; }

.r1 .ray { width: calc(hypot(200, 50) * 1px); }
.r2 .ray { width: calc(hypot(200, 100) * 1px); }
.r3 .ray { width: calc(hypot(200, 200) * 1px); }
.r4 .ray { width: calc(hypot(200, 300) * 1px); }

.a2 {
    rotate: calc(0deg - atan2(100px, 200px));
}

.bad {
    height: 50px;
}

.bad .ray {
    width: calc(hypot(200, 50) * 1px);
    background: rgba(214, 69, 69, .75);
    rotate: atan(50px / 200px);
}
автор: NagarD

Коментарі

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

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

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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