|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Изменение угла рисуемой фигуры
Добрый вечер. Пишу игру "Бильярд". В качестве кия выступает вытянутый элипс. Вот вопрос: Как менять угол прорисовки этого элипса по нажатию на клавиши (стрелки, например)
Заранее спасибо |
#2
|
||||
|
||||
SetWorldTransform | ModifyWorldTransform
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
Цитата:
Использую данную процедуру Код:
procedure CueDraw(ACnv: TCanvas; const X1, Y1, X2, Y2, AAngle: Integer); var NewF, OldF: TXForm; begin form1.Canvas.Pen.Color:=clBlack; form1.Canvas.Brush.Color:=clYellow; SetGraphicsMode(ACnv.Handle, GM_Advanced); GetWorldTransform(ACnv.Handle, OldF); with NewF do begin eM11 := 1 * Cos(AAngle / 360 * Pi * 2); eM22 := 1 * Cos(AAngle / 360 * Pi * 2); eM12 := 1 * Sin(AAngle / 360 * Pi * 2); eM21 := 1 * -Sin(AAngle / 360 * Pi * 2); eDX := Round((X1 + X2) / 2); eDY := Round((Y1 + Y2) / 2); end; ModifyWorldTransform(ACnv.Handle, NewF, MWT_LEFTMULTIPLY); ACnv.Ellipse(X1, Y1, X2, Y2); SetWorldTransform(ACnv.Handle, OldF); end; Однако "кий" (элипс) вращается вокруг очень большой точки, мне бы ее снизить до размеров "шара". Попробовал поковырять процедуру, но ничего дельного не вышло. Как поправить? |
#4
|
|||
|
|||
Грубо говоря, нужно вращать фигуру вокруг точки
|
#5
|
||||
|
||||
А чо, sin и cos уже не в моде?
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#6
|
||||
|
||||
Цитата:
Пишу программы за еду. __________________ |
#7
|
|||
|
|||
Цитата:
Можно пожалуйста подробней? А то в интернете я ничего не нашел, а ручное ковыряние плодов не принесло |