|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.03.2013, 23:06 | #1 |
Пользователь
Регистрация: 06.11.2012
Сообщений: 64
|
можно ли вписать задаваемый прямоугольник в задаваемый круг??пару вопросов
суть: необходимо узнать можно ли вписать задаваемый прямоугольник в задаваемый круг
програмку для вывода прямоугольника и круга составила. вот: Код:
не пойму как это реализовать. подскажите пожалуйста.. и в данном случае можно ли использовать функцию Код:
Код:
хотелось бы используя данную функцию..задавая прямыми не всегда получается именно прямоугольник или же квадрат.. |
13.03.2013, 00:44 | #2 |
Форумчанин
Регистрация: 07.02.2013
Сообщений: 267
|
Ну, у Вас есть координаты центра окружности (x0, y0).
Затем, есть координаты четырех вершин прямоугольника, либо явно заданные, если Вы рисуете с помощью lineto, либо координаты левого верхнего угла (x, y), ширина (width) и высота (height) прямоугольника, через которые опять же легко выражаются координаты всех вершин: (x, y) ; (x + width, y) ; (x, y + height) ; (x + width, y + height). Далее, для каждой вершины считаете расстояние до центра окружности как: sqrt( (x - x0)^2 + (y - y0)^2) и сравниваете с радиусом. Если все 4 длины меньше радиуса, то прямоугольник вписан в окружность.
Μολὼν λαβέ
|
13.03.2013, 07:51 | #3 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
1. Рисовать в данной задаче ничего не нужно. Вообще.
2. Если стоит вопрос "можно ли вписать", значит, фигуры можно как угодно перемещать на плоскости, поэтому сформулированное Вами условие на 4 вершины не является решением задачи. Чтобы прямоугольник можно было вписать в круг, его диагональ должна быть меньше или равна диаметру. |
13.03.2013, 09:49 | #4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
s-andriano, +1
Цитата:
Никаких намёков о "возможности всписать" тут и речи нет! Определяйтесь, что Вам изначально задано и как сформулирована задача! |
|
13.03.2013, 19:46 | #5 |
Пользователь
Регистрация: 06.11.2012
Сообщений: 64
|
на счет рисования - сказали рисовать, значит рисовать..
на счет условия - как в методичке написано условие, так и пишу.. на счет задания - спасибо, вроде разобралась |
13.03.2013, 21:06 | #6 |
Пользователь
Регистрация: 06.11.2012
Сообщений: 64
|
ну помогите пожалуйста еще идиотке.. и читала про функции много и вроде понимаю.. но как до практики - то лбом о стенку..
вот что у меня получилось::: Код:
больше всего выбивает ошибок вот таких: expected primary-expression before "int" я не понимаю хоть убей что не так делаю, и как правильно..помогите разобрать мои ошибки.. препод злюка заявил что должна сама разобрать и никакой подсказки.. а я не понимаю |
13.03.2013, 22:25 | #7 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,310
|
И все же. Надо определиться с условием задачи.
1. Цитата:
Т.е. радиус окружности должен быть равен половине диагонали прямоугольника: r = AC/2; В противном случае можно говорить, например, о том, что прямоугольник может находиться внутри круга, пересекаться с кругом или, как вариант, когда размеры всех сторон прямоугольника больше диаметра круга - круг может разместиться внутри прямоугольника и т.д. (см. вариант с квадратом). Т.о. ответ должен быть однозначным: Если r = AC/2, то прямоугольник может быть вписан в окружность, а иначе НЕТ. 2. Вторая проблема: В вычислениях используются два типа переменных - int и float. Думаю, что проблем станет меньше, если все переменные сделать целого типа. Помнится, что, например, pow - работает с вещественным типом. Возведение в квадрат лучше реализовать простым перемножением. Для сравнения радиуса круга и размера диагонали, можно сравнивать квадрат диагонали и квадрат диаметра круга. Ежели что-то не так, то гуру поправят. Как-то так ...
Как-то так, ...
|
|
13.03.2013, 23:10 | #8 | |
Пользователь
Регистрация: 06.11.2012
Сообщений: 64
|
Цитата:
и все равно все целые значения не получатся- там где Код:
если гуру это препод - то наш не поправит. он у нас женофоб. приходится все самой. а без ошибок и недопонимания не умею1 курс всетаки.. а здесь помогут - это хорошо меня больше функции интересуют - правильно ли описала или нет???????? |
|
14.03.2013, 00:04 | #9 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
так сравнивать нельзя! попробуйте так: Код:
|
|
14.03.2013, 09:12 | #10 | ||
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
Цитата:
Цитата:
Координаты точки пересечения диагоналей вычисляются как среднее арифметическое соответствующих координат его вершин.
Правильно поставленная задача - три четверти решения.
|
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пару вопросов... | qewertyns | Помощь студентам | 6 | 10.12.2012 00:43 |
Как можно создать графический редактор где можно с помощю циркуля рисовать круг, а с линейки чертитьлинию | Aksuubai | Общие вопросы Delphi | 3 | 03.06.2010 19:18 |
Пару вопросов | Syltan | Свободное общение | 2 | 19.10.2009 01:45 |
Пару вопросов о DynamicSkinForm | Relrin | Компоненты Delphi | 6 | 22.04.2008 04:03 |