0 / 0 / 0
Регистрация: 01.08.2018
Сообщений: 3
|
||||||
1 | ||||||
Рисунок единичной окружности в заданной метрике02.08.2018, 21:43. Показов 1945. Ответов 5
Метки нет (Все метки)
В задании требуется написать функцию нахождения расстояния между двумя точками на плоскости в различных метриках которая задается числом n в степенях формулы эвклидовой метрики |x - y| =(|x1 - y1|n + |x2 - y2|n)1/n.
И реализовать функцию, которая будет рисовать единичные окружности с центром в начале координат, но в заданной метрике, т.е. функции на вход задаете параметр n (число которое стоит в формуле метрики), на выходе получаете рисунок. В поиске нашел похожий пример с установкой размера радиуса, но как нарисовать единичную окружность в нужной метрике, не ясно. Может кто в теме?
0
|
02.08.2018, 21:43 | |
Ответы с готовыми решениями:
5
Найти радиус окружности и площадь круга по заданной длине окружности Определить, принадлежит ли точка с координатами (x, y) единичной окружности Логические выражения. Точка принадлежит области, ограниченной левой частью единичной окружности и осью у Рисунок окружности |
03.08.2018, 08:16 | 2 |
https://en.wikipedia.org/wiki/Euclidean_distance
ничего подобного там не сказано. С чего ты взял, что степени и корни должны быть n? Во всех формулах даже для n-мерных пространств они квадратные.
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
|
|
03.08.2018, 08:31 | 3 |
Думаю, Вам надо нарисовать семейство точек, для которых
(|x1 - y1|n + |x2 - y2|n)1/n=1 Пусть x1=x2=0 - центр фигуры Тогда надо найти точки (|y1|n + |y2|n)1/n=1 Возводим в степень n |y1|n + |y2|n=1 или |y2|n=1-|y1|n |y2|=(1-|y1|n)1/n y2=(+-)(1-|y1|n)1/n Т.о. в цикле проходим по всем точкам, для которых |y1|<1 и вычисляем по 2 значения y2
0
|
0 / 0 / 0
Регистрация: 01.08.2018
Сообщений: 3
|
|
03.08.2018, 11:09 [ТС] | 4 |
Kuzia domovenok,
дополнение из текста задания: "...Эвклидова метрика имеет эквивалентные ей метрики, например метрика таксиста, где вместо 2 в степенях стоят 1 и метрика задается другой формулой ||x -y|| = |x1-y1|+|x2-y2|, или 2 можно заменить на 3 ||x -y|| = (|x1-y1|3+|x2-y2|3)1/3, или любое другое натуральное число n..." zss, Вы доступно прояснили направление решения, но как результат выводить в рисунок, может задание подразумевает использование win api или С++ Builder? К сожалению с графикой пока не работал, - темы последних заданий про массивы и шифрование.
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
|
||||||
03.08.2018, 12:20 | 5 | |||||
Сообщение было отмечено Tomas_17 как решение
Решение
Так у Вас все написано.
Цикл уже есть Только в 29-30 строках используйте x как y1, а y вычисляйте по указанной формуле.
1
|
0 / 0 / 0
Регистрация: 01.08.2018
Сообщений: 3
|
||||||
03.08.2018, 16:03 [ТС] | 6 | |||||
Спасибо, вроде работает. Интересно как параметр метрики влияет на фигуру. Во 2-й степени это обычное уравнение единичной окружности рисует концентрическую фигуру. В 1-й степени рисуется ромб, а в степени 3 и более - фигура стремится к квадрату... Подписал координатные оси, в коде добавил комментарии - может кому пригодится.
Есть небольшая недорисовка фигуры во второй четверти в степени 2 и более - это исправимо? P.S. Обработка предельного случая, когда n > + infinite ||x -y|| = max [|x1-y1|, |x2-y2|] - это если n стремится к бесконечности?
0
|
03.08.2018, 16:03 | |
03.08.2018, 16:03 | |
Помогаю со студенческими работами здесь
6
Определить, сколько значений заданной функции принадлежит к заданной окружности Принадлежит ли точка заданной окружности Получить на экране рисунок паутины с центром в произвольной (заданной) точке Определите, принадлежит ли точка заданной окружности Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |