day & night

нужна помощь по C++ builder, задание с треугольником
Дата обновления: , перейти к новому сообщению
#1
farg



Боец невидимого фронта
[SoftoRooMTeaM] Group Icon

Группа: Администраторы
Сообщений: 2.977
Регистрация: 11.02.2004
Пользователь №: 194


Респектов: 254
-----XX---




Выдали такое задание на лабу. Нужно нарисовать треугольник в C++ builder и предусмотреть возможность его вращения вокруг одной из вершин. Т.е. мы задаем координаты вершин треугольника. Фиксируем одну из вершин и вокруг нее поворачиваем на какой-то угол треугольник. Как это сделать не представляю. Нужна помощь. Help.
User is offline
Go topGo end
 

Ответов(1 - 3)
2.10.2006 - 19:42
#2
ЭЖД



*nix`оид
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 11.935
Регистрация: 18.09.2004
Пользователь №: 1.679


Респектов: 789
-----XXXX-




ph34r.gif вся сложность в написании формулы по которой будут измняться координаты.
если вершины треугольнока A(x,y), B(x1,y1), C(x2,y2), то вершины будут поварачиваться с радиусами соответственно:
вершина B имеет радус sqrt(sqr(x1-x)+sqr(y1-y));
вершина A sqrt(sqr(x2-x)+sqr(y2-y)).
дальше не знаю sad.gif ход стрелки у часов, как ее описывать sad.gif
User is offline
Go topGo end
2.10.2006 - 20:17
#3
ЭЖД



*nix`оид
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 11.935
Регистрация: 18.09.2004
Пользователь №: 1.679


Респектов: 789
-----XXXX-




QUOTE
имеем точку А относительно которой будем поворачивать.
координаты точки А(x0,y0)
допустим, сторона треугольника, которую надо повернуть, имеет длину R
и угол наклона к оси оХ альфа.
вычисляем угол альфа.
из уравнения прямой y=kx+b
пусть поворачиваем отрезок АВ, В(x1;y1)
так вот, k=(y2-y1)/(x2-x1);
тогда альфа=arctg(k);
из уравнения окружности x1=Rsin(альфа)
x1=Rcos(альфа) y1=Rsin(альфа)
дальше, если мы поворачиваем по часовой, то прибавляем значение угла, если против часовой, то отнимаем
aльфа1=альфа+-фи
где фи - угол поворота
тогда новые координаты будут
x2=Rcos(альфа1)+x0
y2=Rsin(альфа1)+y0
а отрезок AB1, где В1(x2;y2) - повернутый отрезок
и так же с другой стороной
просто поворачиваешь так две стороны, которые кончаются точкой А, относительно которой поворачиваешь, а третью (ВС) достраиваешь

© killer
User is offline
Go topGo end
2.10.2006 - 21:36
#4
farg



Боец невидимого фронта
[SoftoRooMTeaM] Group Icon

Группа: Администраторы
Сообщений: 2.977
Регистрация: 11.02.2004
Пользователь №: 194


Респектов: 254
-----XX---




спасиб, буду пробовать
User is offline
Go topGo end

Topic Options
Сейчас: 19.05.2024 - 9:18
Мобильная версия | Lite версия