Вычислять есть ли такой треугольник и какой он
Есть код. Никак не лезет в голову как сделать так, чтобы функция проверяла есть ли такой треугольник вообще ( можно ли построить ), и каким он является ( равнобедренный, равносторонний, и так далее) Код не работает, не пойму где ошибка.
<html>
<head>
<title>Треугольник</title>
<meta charset="UTF-8">
<script>
function calc(){
val1 = document.getElementById("value1").value;
val2 = document.getElementById("value2").value;
val3 = document.getElementById("value3").value;
if (val1 != "" && val2 != "" && val3 != "" )
{
document.getElementById("answer").innerHTML="Считаем";
}
</script>
<div id="rslokadv" style="position:absolute; margin-top:75px; width: 360px;display:none;">
</div>
<center>
<form id="calc" name="form" style="min-width:400px">
<table class="my_table>">
<tr><td colspan=2 align=center>
<h2>Определить существование треугольника</h2>
</td></tr>
<tr><td>Сторона треугольника <b>A</b></td><td>
<input id="value1" type="text" name="value1">
</td></tr><tr><td>
Сторона треугольника <b>B</b></td><td>
<input id="value2" type="text" name="value2">
</td></tr>
<tr><td>
Сторона треугольника <b>C</b></td><td>
<input id="value3" type="text" name="value3">
</td></tr>
<tr><td colspan=2 align=center>
<input type="button" onclick="calc()" value="Вычислить">
</td></tr>
<tr><td colspan=2 align=center>
<br><br><center>
</center><br><br></td></tr>
<tr><td colspan=2 align=center>
<div id="answer"></div>
</td></tr></table>
</form>
</center>
</body>
</html>
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
существует ли треугольник
У треугольника сумма любых двух сторон должна быть больше третьей
треугольник равносторонний
сравнить все стороны
сторону (вернее лучше квадрат стороны, чтобы не терять в точности и быстрее делать вычисления) вычислить по формуле
const l2 = (x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1)
треугольник равнобедренный
сравнить попарно стороны
if ((l2_1 == l2_2) || (l2_1 == l2_3)) || (l2_2 == l2_3))
треугольник прямоугольный
использовать теорему косинусов и вычислить угол или использовать теорему Пифагора (что будет поточнее и побыстрее)
if ((l2_1 == l2_2 + l2_3) || (l2_2 == l2_1 + l2_3) || (l2_3 == l2_1 + l2_2))
Или вопрос в другом был?