Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/16: Рейтинг темы: голосов - 16, средняя оценка - 4.63
MiThEoN
453 / 315 / 37
Регистрация: 31.10.2009
Сообщений: 518
Записей в блоге: 2
1

Нахождение квадрата в координатной плоскости описывающего окружность

15.11.2012, 22:10. Показов 3093. Ответов 8
Метки нет (Все метки)

Добрый день, Уважаемые,

Вроде и с математикой у меня не так уж и плохо, но все же к решению не могу прийти!?

На самом деле у меня не окружность, а дуга. Известны начальная и конечная точка, и коэффициент кривизны, т.е. тангенс четверти угла стянутого дуговым сегментом.

Четверть угла лишь для того чтобы тангенс необрывался если модуль угла больше Пи/2
А тангенс нужен для того что бы определить в какую сторону дуга выпуклая от отрезка соединяющего те две точки.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Point a = new Point(4, 1);
Point b = new Point(8, 3);
 
// Тангенс четверти угла стянутого дуговым сегментом
double bulge = 2.414213562373094;
 
// Угол стянутый дуговым сегментом
double L = Math.Atan(bulge) * 4;
 
// Для отрезка соединяющего начальну и конечную точки дуги
double AB = Math.Sqrt(Math.Pow(a.X - b.X, 2.0) + Math.Pow(a.Y - b.Y, 2.0));
 
// Радиус кривизны дуги
double R = AB / (Math.Sqrt(2 - 2 * Math.Cos(L)));
Собственно дальше не догоню как искать квадрат описывающий дугу?!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2012, 22:10
Ответы с готовыми решениями:

Точки на плоскости, нахождение квадрата
Такая задача: Даны N точек на плоскости(N>=4). Выяснить, найдутся ли среди этих точек такие,...

Нужно изобразить на координатной прямой или на координатной плоскости множества истинности следующего предиката
Помогите пожалуйста Добавлено через 1 минуту (\sin x>0)\sim (\cos x<\pi /2)

Окружность вписана в квадрат. Найти площадь квадрата, вписанного в эту окружность
Помогите, пожалуйста... 2)Окружность вписана в квадрат (задана площадь этого квадрата) найти...

Окружность вписана в квадрат заданной площади; найти площадь квадрата, вписанного в эту окружность
Окружность вписана в квадрат заданной площади. Найти площадь квадрата, вписанного в эту окружность....

__________________

Записывайтесь на профессиональные курсы С#-разработчиков‌
8
308 / 204 / 44
Регистрация: 15.02.2012
Сообщений: 605
15.11.2012, 22:25 2
Есть две точки дуги. Дуга представляет собой четверть окружности. Соединяем точки. Вычисляем длину хорды, которая по совместительству является гипотенузой в треугольнике (хорда-радиус-радиус). Радиусы равны. Составляем уравнение по теореме Пифагора - находим длину радиуса. Откладываем в нужную сторону. Находим центр окружности. Рисуем описанный квадрат.

Или я неправильно понял задачу?
0
MiThEoN
453 / 315 / 37
Регистрация: 31.10.2009
Сообщений: 518
Записей в блоге: 2
15.11.2012, 22:37  [ТС] 3
Цитата Сообщение от jivot Посмотреть сообщение
Дуга представляет собой четверть окружности
Дуга не представляет собой четверть окружности. А дан лишь тангенс четверти всего угла представляющего окружность

Цитата Сообщение от jivot Посмотреть сообщение
Вычисляем длину хорды,
Цитата Сообщение от jivot Посмотреть сообщение
находим длину радиуса
Радиус и хорду я нашел для любого угла

Цитата Сообщение от jivot Посмотреть сообщение
Откладываем в нужную сторону
А если точки находятся не на границах окружности.

jivot, молодец, хорошо упростил задачу))
0
308 / 204 / 44
Регистрация: 15.02.2012
Сообщений: 605
15.11.2012, 22:40 4
Цитата Сообщение от VASSUV Посмотреть сообщение
ivot, молодец, хорошо упростил задачу))
ну как понял))


Цитата Сообщение от VASSUV Посмотреть сообщение
А если точки находятся не на границах окружности.
а это как? ... заданная дуга является частью окружности или нет?
0
MiThEoN
453 / 315 / 37
Регистрация: 31.10.2009
Сообщений: 518
Записей в блоге: 2
15.11.2012, 22:48  [ТС] 5
Цитата Сообщение от jivot Посмотреть сообщение
а это как?
Ты предложил отложить в нужную сторону длину радиуса чтоб найти центр окружности, да это легко сделать если, допустим: точки (0,1) и (1,0) , угол 45 градусов, радиус 1.
А вот если: точки (0,1) и (1,0) , угол 5 градусов, радиус получается около 10, то тогда не получится по твоему.
0
308 / 204 / 44
Регистрация: 15.02.2012
Сообщений: 605
15.11.2012, 23:09 6
хм ... ну как вариант - строим по окружности на концах дуги, используя найденный радиус кривизны, и находим точку пересечения окружностей, нет?
0
MiThEoN
453 / 315 / 37
Регистрация: 31.10.2009
Сообщений: 518
Записей в блоге: 2
15.11.2012, 23:14  [ТС] 7
Цитата Сообщение от jivot Посмотреть сообщение
находим точку пересечения окружносте
В С#?!
0
308 / 204 / 44
Регистрация: 15.02.2012
Сообщений: 605
15.11.2012, 23:16 8
эээ ... а что мешает в c# решить систему уравнений?
1
MiThEoN
453 / 315 / 37
Регистрация: 31.10.2009
Сообщений: 518
Записей в блоге: 2
16.11.2012, 00:36  [ТС] 9
Цитата Сообщение от jivot Посмотреть сообщение
систему уравнений
спасибо, намек понял, забыл совсем про уравнения окружности

Добавлено через 1 час 11 минут
Вот так у меня получилось. На случай если кому нужно будет
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Point a = new Point(4, 1);
Point b = new Point(8, 3);
 
// Тангенс четверти угла стянутого дуговым сегментом
double bulge = 2.414213562373094;
 
// Угол стянутый дуговым сегментом
double L = Math.Atan(bulge) * 4;
 
// Для отрезка соединяющего начальну и конечную точки дуги
double AB = Math.Sqrt(Math.Pow(a.X - b.X, 2.0) + Math.Pow(a.Y - b.Y, 2.0));
 
// Радиус кривизны дуги
double R = AB / (Math.Sqrt(2 - 2 * Math.Cos(L)));
 
// Растояние от АВ до Центра окружности
double h = R - AB * bulge;
 
// Координаты вектора AB
double ABx = b.X - a.X;
double ABy = b.Y - a.Y;
 
//Находим перпендикуляр:
double Px = -ABy;
double Py = ABx;
 
//Длина перпендикуляра:
double LenP = Math.Sqrt(Math.Pow(Px, 2.0) + Math.Pow(Py, 2.0));
 
//Нормализуем вектор P (приводим к единичной длине):
Px = Px / LenP;
Py = Py / LenP;
 
//Находим нужные координаты центра окружности:
double Hx = (a.X + b.X) / 2 + Px * h;
double Hy = (a.Y + b.Y) / 2 + Py * h;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2012, 00:36

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Окружность вписана в квадрат заданной площади. Найти площадь квадрата, вписанного в эту окружность.
Окружность вписана в квадрат заданной площади. Найти площадь квадрата, вписанного в эту окружность....

Написать уравнение плоскости, проходящей через точку М(1,1,1) и параллельной координатной плоскости XOY
помогите решить

Синусоиды на 1 координатной плоскости
написать программу для синусоиды: y=2sinx y=sin2x y = sin(x+2) y= sinx +2 чтобы эти графики...

Шкала на координатной плоскости
Как на координатных осях OY и OX изобразить шкалу(Например от 1 до 50Бчтобы цена деления была 2)...

Радиус на координатной плоскости
не знаю как сделать расчёт "зашёл объект в радиус действия другова объекта" насколько понял понял...

Точки на координатной плоскости
Дано множество A из N точек. Среди всех точек этого множества, лежащих в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.