三角関数CSSのデモ

デモ共通CSS

.box {
    width: var(--base);    /* 底辺 */
    height: var(--height); /* 高さ */
    .h {
        width: var(--h);      /* 斜辺 */
        rotate: var(--angle); /* 角度 */
    }
}

1. 角度と底辺から斜辺と高さを計算

/* 1. 角度と底辺から斜辺と高さを計算 */
.sample1 {
    --angle: 30deg; /* 角度 */
    --base: 500px;  /* 底辺 */
    --height: calc(var(--base) * tan(var(--angle))); /* 高さ ⇒ 288.672px */
    --h: calc(var(--base) / cos(var(--angle)));      /* 斜辺 ⇒ 577.344px */
}
CSS JavaScript CASIO
角度 30 30
底辺 500 500
高さ 288.67513459481
斜辺 577.35026918963

2. 角度と高さから底辺と斜辺を計算

/* 2. 角度と高さから底辺と斜辺を計算 */
.sample2 {
    --angle: 30deg;  /* 角度 */
    --height: 300px; /* 高さ */
    --base: calc(var(--height) / tan(var(--angle))); /* 底辺 ⇒ 519.609px */
    --h: calc(var(--height) / sin(var(--angle)));    /* 斜辺 ⇒ 600px */
}
CSS JavaScript CASIO
角度 30 30
底辺 519.61524227066
高さ 300 300
斜辺 600

3. 角度と斜辺から底辺と高さを計算

/* 3. 角度と斜辺から底辺と高さを計算 */
.sample3 {
    --angle: 30deg; /* 角度 */
    --h: 500px;     /* 斜辺 */
    --base: calc(var(--h) * cos(var(--angle)));   /* 底辺 ⇒ 433px */
    --height: calc(var(--h) * sin(var(--angle))); /* 高さ ⇒ 250px */
}
CSS JavaScript CASIO
角度 30 30
底辺 433.01270189222
高さ 250
斜辺 500 500

4. 底辺と高さから角度と斜辺を計算

/* 4. 底辺と高さから角度と斜辺を計算 */
.sample4 {
    --base: 400px;   /* 底辺 */
    --height: 300px; /* 高さ */
    --angle: atan2(var(--height), var(--base)); /* 角度 ⇒ 36.8699deg */
    --h: hypot(var(--base), var(--height));     /* 斜辺 ⇒ 500px */
}
CSS JavaScript CASIO
角度 36.869897645844
底辺 400 400
高さ 300 300
斜辺 500

5. 底辺と斜辺から角度と高さを計算

/* 5. 底辺と斜辺から角度と高さを計算 */
.sample5 {
    --base: 400px;   /* 底辺(ピクセル) */
    --base-num: 400; /* 底辺(数値) */
    --h: 500px;      /* 斜辺(ピクセル) */
    --h-num: 500;    /* 斜辺(数値) */
    --angle: acos(var(--base-num) / var(--h-num));   /* 角度 ⇒ 36.8699deg */
    --height: calc(var(--base) * tan(var(--angle))); /* 高さ ⇒ 288.672px */
}
CSS JavaScript CASIO
角度 36.869897645844
底辺 400 400
高さ 300
斜辺 500 500

6. 高さと斜辺から角度と底辺を計算

/* 6. 高さと斜辺から角度と底辺を計算 */
.sample6 {
    --height: 300px;   /* 高さ(ピクセル) */
    --height-num: 300; /* 高さ(数値) */
    --h: 500px;        /* 斜辺(ピクセル) */
    --h-num: 500;      /* 斜辺(数値) */
    --angle: asin(var(--height-num) / var(--h-num)); /* 角度 ⇒ 36.8699deg */
    --base: calc(var(--h) * cos(var(--angle)));      /* 底辺 ⇒ 400px */
}
CSS JavaScript CASIO
角度 36.869897645844
底辺 400
高さ 300 300
斜辺 500 500