Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2010, 16:31   #1
savva
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 225
По умолчанию C++ проектное решение.

Итак,господа,требуется ваша помощь по следующему вопросу:
//координаты задаются пользователем в полярных координатах а храняться
//в декартовых.
Собственно есть задача:В круг с центром (r,fi) радиусом rad,вписывается квадрат(углы квадрата лежат на грани окружности),для описания точки создается класс.

По скольку квадрат можно вписать в круг кучей способов(задать координаты),то это должен кто-то делать.мне нужен совет как сделать программу,квадрат по умолчанию создавать с некими координатами,и потом сообщать их пользователю?или же просить чтобы пользователь ввел координаты этой точки(r,fi),чтобы пользователь мог ввести эти значения ему их надо знать(в устную или с помощью неких средств быстро посчитать множество точек окружности(лежащих на грани) достаточно трудно) и потом ввести.

Итак вопрос:какой вариант мне выбрать,и если 2-ой вариант то как мне реализовать подсчет точек на грани окружности в полярных координатах(я думаю переводить в XY считать точки потом переводить обратно в RFI крайне не продуктивно),и представления их пользователю(их там может быть бесконечно много).

помогите.
За помощь: Нажмите на весы слева от сообщения!

Последний раз редактировалось savva; 06.07.2010 в 16:52.
savva вне форума Ответить с цитированием
Старый 07.07.2010, 09:35   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

У тебя есть круг ака окружность, он же еллипс с равными радиусами (хе хе).
Ты знаешь его центр и радиус.
По этим двум параметрам можно построить правильный многоугольник тригонометрическими функциями.
т.е. что то вроде
Код:
void poly(int n,HDC dc){
double ang=0,x,y,r=200,cx=400,cy=400;
MoveToEx(dc,cx,cy,0);
for(int i=0;i<=n;i++){
 x=cos(ang)*r+cx; 
 y=sin(ang)*r+cy;
 ang+=2*3.1415926/n;
 if(i==0){MoveToEx(dc,x,y,0);} else { LineTo(dc,(int)(x),(int)(y));}

}


}
т.е. просто построить на этой окружности четыре точки, и соединить их линиями под углом 90 градусов.

Идея ясна?

P.S. Здесь используется рисование в VS, так что функу эту вызываю в "событии"
Код:
	case WM_PAINT:
		hdc = BeginPaint(hWnd, &ps);
		poly(4,hdc);
		// TODO: добавьте любой код отрисовки...
		EndPaint(hWnd, &ps);
		break;
Ну а на Борланде те же формулы но dc не нужно в функции передавать
I'm learning to live...

Последний раз редактировалось Stilet; 07.07.2010 в 10:02.
Stilet вне форума Ответить с цитированием
Старый 07.07.2010, 19:43   #3
savva
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 225
По умолчанию

спасибо за ответ,но мне не требуется визуализация,у меня курс учебно-вычислительной практики,и сейчас моя задача научиться программировать в С++,в т.ч. с использованием классов.
За помощь: Нажмите на весы слева от сообщения!
savva вне форума Ответить с цитированием
Старый 07.07.2010, 19:44   #4
savva
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 225
По умолчанию

закрывайте тему
За помощь: Нажмите на весы слева от сообщения!
savva вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение в C++ semenpetr Фриланс 13 07.04.2010 09:09
решение ДУ Gronex Паскаль, Turbo Pascal, PascalABC.NET 0 20.05.2009 20:51
решение ДУ DEBAZOL Паскаль, Turbo Pascal, PascalABC.NET 1 04.04.2008 21:49