2 / 2 / 0
Регистрация: 19.10.2017
Сообщений: 214
|
|||||||||||
1 | |||||||||||
Найти синус угла в многоугольнике22.12.2018, 15:21. Показов 1496. Ответов 9
Метки нет (Все метки)
Я хочу найти синус каждого угла в многоугольнике с помощью векторного произведения, вот части кода:
0
|
22.12.2018, 15:21 | |
Ответы с готовыми решениями:
9
Вычислить синус угла и биссектрису Найти синус угла треугольника Найти синус угла между векторами. Найти синус угла между векторами. |
691 / 5398 / 265
Регистрация: 11.08.2016
Сообщений: 3,352
|
|
22.12.2018, 18:23 | 2 |
Если угол выпуклый, синус будет положительный, если впуклый - отрицательный.
0
|
2 / 2 / 0
Регистрация: 19.10.2017
Сообщений: 214
|
|
22.12.2018, 21:00 [ТС] | 3 |
В этом то и стоит задача, проверить на впуклость, но у меня всё равно синус всегда положительный, видимо проблема в коде
0
|
2376 / 833 / 317
Регистрация: 10.02.2018
Сообщений: 1,966
|
|
22.12.2018, 21:35 | 4 |
sin - из векторного:
cos - из скалярного:
0
|
2 / 2 / 0
Регистрация: 19.10.2017
Сообщений: 214
|
|||||||||||
23.12.2018, 22:38 [ТС] | 5 | ||||||||||
Вот, что получилось, но у меня проблемы с функцией angle, не правильно считает :
Теперь я эту глупую ошибку решил. Но остались другие..
0
|
2376 / 833 / 317
Регистрация: 10.02.2018
Сообщений: 1,966
|
|
24.12.2018, 00:13 | 6 |
У вас выход за границы массива. x[5] - подразумевает, что у массива есть 6 ячеек. Их же всего 5 для x и 4 для xx. При выходе за границы затираются значения других переменных.
0
|
2 / 2 / 0
Регистрация: 19.10.2017
Сообщений: 214
|
|
24.12.2018, 01:08 [ТС] | 7 |
Вроде понял
Добавлено через 5 минут И даже заработало А вот не знаешь, можно ли получше сделать код, оптимизировать?
0
|
119 / 94 / 35
Регистрация: 18.12.2012
Сообщений: 654
|
|
24.12.2018, 04:50 | 8 |
Нет предела совершенству
Если Вы просите разрешения у Ygg, то скорее всего он его даст Если Вы спрашиваете о возможности улучшения кода, то ответ, скорее всего, будет "Да"
0
|
2 / 2 / 0
Регистрация: 19.10.2017
Сообщений: 214
|
|
24.12.2018, 12:37 [ТС] | 9 |
Да, я боялся без его разрешения код трогать
0
|
2376 / 833 / 317
Регистрация: 10.02.2018
Сообщений: 1,966
|
|
24.12.2018, 13:14 | 10 |
Не по теме: разрешаю :D Из оптимизаций приходит на ум несколько вариантов, но нужно смотреть, как оно выйдет, а то может лучше и так оставить. 1) Попытаться убрать дополнительный элемент из хвоста массива, который дублирует первый элемент. 1.1) Сделать первую итерацию до цикла, что бы она поглотила связку начала и конца массива. А в цикле сделать только простые итерации. 1.2) Задействовать деление по модулю. При выходе индекса за границы массива результат модуля всегда будет давать индекс в нужном диапазоне (0 <= (index)%N < N). 2) Попытаться убрать второй массив, если он не нужен. Изменить функцию определения знака синуса, что бы она сама считала разности.
0
|
24.12.2018, 13:14 | |
24.12.2018, 13:14 | |
Помогаю со студенческими работами здесь
10
Как найти косинус/синус угла, но не целого, а с минутами Как найти косинус и синус при найденном арктангенсе угла ? Синус угла и цикл Синус тройного угла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |