Твой софтовый форум > Тематические форумы > Программирование

нужна помощь по C++ builder

,

задание с треугольником

Дата публикации: 02.10.2006 - 21:36
farg
Выдали такое задание на лабу. Нужно нарисовать треугольник в C++ builder и предусмотреть возможность его вращения вокруг одной из вершин. Т.е. мы задаем координаты вершин треугольника. Фиксируем одну из вершин и вокруг нее поворачиваем на какой-то угол треугольник. Как это сделать не представляю. Нужна помощь. Help.
ЭЖД
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
ЭЖД
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
farg
спасиб, буду пробовать


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке: нужна помощь по C++ builder
SoftoRooM © 2004-2024