Старый 30.04.2006, 21:51   #1   
Форумец
 
Сообщений: 13
Регистрация: 01.11.2005

companent вне форума Не в сети
Question Вопрос по Pascal

Может кто знает, как сделать прогу, выводящую на экран эллипс(или триугольник), вращающийся вокруг своего центра.
  Ответить с цитированием
Старый 01.05.2006, 12:13   #2   
not for sale...
 
Аватар для -=) BeaveR (=-
 
Сообщений: 74
Регистрация: 04.09.2005
Возраст: 38

-=) BeaveR (=- вне форума Не в сети
нереально...
  Ответить с цитированием
Старый 01.05.2006, 13:07   #3   
Форумец
 
Сообщений: 13
Регистрация: 01.11.2005

companent вне форума Не в сети
С эллипсом получилось!
А вот правильный триугольник не вращается...
Хоть посоветуйте где почитать можно
  Ответить с цитированием
Старый 01.05.2006, 16:17   #4   
Форумец
 
Аватар для -Smile-
 
Сообщений: 2,133
Регистрация: 24.04.2006
Возраст: 36

-Smile- вне форума Не в сети
А ты расскажи как эллипс сделал +)
  Ответить с цитированием
Старый 02.05.2006, 03:13   #5   
Форумец
 
Аватар для The_God
 
Сообщений: 1,109
Регистрация: 19.12.2004
Возраст: 42

The_God вне форума Не в сети
ты три виршынки триугольничечга умнажай на матрицу трансформации (вращения) в цикле, и соидиняй получиные виршынки отрезочками.. и будит на твоей улице зачот
  Ответить с цитированием
Старый 02.05.2006, 07:12   #6   
Форумец
 
Сообщений: 13
Регистрация: 01.11.2005

companent вне форума Не в сети
Цитата:
Сообщение от The_God
ты три виршынки триугольничечга умнажай на матрицу трансформации (вращения) в цикле, и соидиняй получиные виршынки отрезочками.. и будит на твоей улице зачот
Спасибо канечьно за информацию, но в исходнике это было бы интересснее...
  Ответить с цитированием
Старый 02.05.2006, 17:22   #7   
Форумец
 
Аватар для -Smile-
 
Сообщений: 2,133
Регистрация: 24.04.2006
Возраст: 36

-Smile- вне форума Не в сети
Цитата:
Сообщение от -Smile-
А ты расскажи как эллипс сделал +)
Повторюсь... =)

Цитата:
Сообщение от companent
Может кто знает, как сделать прогу, выводящую на экран эллипс(или триугольник), вращающийся вокруг своего центра.
И еще вопрос: где у треугольника центр??
  Ответить с цитированием
Старый 02.05.2006, 18:36   #8   
Форумец
 
Сообщений: 13
Регистрация: 01.11.2005

companent вне форума Не в сети
Вот как это выглядит для эллипса:


uses Crt, Graph;
Function max(a, b: Integer): Integer;
Begin
max := a;
If a < b Then max := b;
End;
const
r1=150;
r2=100;
r2d = 180/Pi;
ms = 50;
type
TGraphix = Object
Constructor Init;
Destructor Done;
End;
TEllipse = Object(TGraphix)
a, b: integer;
X0, Y0: Integer;
Angle: Integer;
Constructor Init(TheA, TheB, CoordX, CoordY: Integer);
Destructor Done;
Procedure Show(Visible: Boolean);
Procedure Rotate;
End;
Constructor TGraphix.Init;
Var
GrDriver, GrMode, ErrCode: Integer;
Begin
GrDriver := Detect;
InitGraph(GrDriver, GrMode, '');
ErrCode := GraphResult;
If ErrCode <> grOk Then Fail;
End;
Destructor TGraphix.Done;
Begin
CloseGraph;
End;
Constructor TEllipse.Init(TheA, TheB, CoordX, CoordY: Integer);
Begin
If not Inherited Init Then Fail;
a := TheA; b := TheB;
X0 := CoordX; Y0 := CoordY;
End;
Destructor TEllipse.Done;
Begin
Inherited Done;
End;
Procedure TEllipse.Show(Visible: Boolean);
Var
Alpha, Phi, _X, _Y: Real;
i, X, Y: Integer;
Begin
If Visible Then Begin
Alpha := Angle/r2d;
PutPixel(320, 240, White);
For i := 0 To 359 Do Begin
Phi := i / r2d;
_X := a * Cos(phi);
_Y := b * Sin(phi);
X := Trunc(x0 + _X * Cos(Alpha) - _Y * Sin(Alpha));
Y := Trunc(y0 + _X * Sin(Alpha) + _Y * Cos(Alpha));
PutPixel(X, Y, White);
End;
End
Else Begin
SetFillStyle(SolidFill, GetBkColor);
SetColor(Black);
FillEllipse(X0, Y0, max(a, b)+10, max(a, b)+10);
End;
End;
Procedure TEllipse.Rotate;
Begin
Show(False);
Inc(Angle);
Show(True);
End;
Var
ell: TEllipse;
begin
If not ell.Init(r1, r2, 320, 240) Then Exit;
Repeat
ell.Rotate;
Delay(ms);
Until KeyPressed;
While Keypressed Do ReadKey;
ell.Done;
end.
  Ответить с цитированием
Старый 03.05.2006, 15:12   #9   
Форумец
 
Аватар для fishca
 
Сообщений: 708
Регистрация: 23.12.2002
Возраст: 50
Записей в дневнике: 1

fishca вне форума Не в сети
Цитата:
Сообщение от -Smile-
Повторюсь... =)
И еще вопрос: где у треугольника центр??
На пересечении медиан или биссектриссссссссссссс
  Ответить с цитированием
Старый 03.05.2006, 17:26   #10   
Форумец
 
Аватар для -Smile-
 
Сообщений: 2,133
Регистрация: 24.04.2006
Возраст: 36

-Smile- вне форума Не в сети
Цитата:
Сообщение от fishca
На пересечении медиан или биссектриссссссссссссс
Ну центр может быть описанной или вписанной окружности, например.
  Ответить с цитированием
Старый 04.05.2006, 07:40   #11   
Форумец
 
Сообщений: 13
Регистрация: 01.11.2005

companent вне форума Не в сети
Центр где угодно, это не важно!
Главное чтобы триугольник был правильным и вращался!
  Ответить с цитированием
Старый 04.05.2006, 15:33   #12   
Альдо Апачи
 
Аватар для Xtnshtcgjkjdbyjq
 
Сообщений: 11,183
Регистрация: 21.06.2005
Возраст: 43

Xtnshtcgjkjdbyjq вне форума Не в сети
Цитата:
Сообщение от companent
Центр где угодно, это не важно
Поржал.
  Ответить с цитированием
Старый 04.05.2006, 18:22   #13   
Форумец
 
Аватар для -Smile-
 
Сообщений: 2,133
Регистрация: 24.04.2006
Возраст: 36

-Smile- вне форума Не в сети
Цитата:
Сообщение от companent
Центр где угодно, это не важно!
Главное чтобы триугольник был правильным и вращался!
Ну вот если правильный, то уже лучше. :Р
  Ответить с цитированием
Старый 04.05.2006, 18:24   #14   
error #65535
 
Аватар для maximn
 
Сообщений: 5,240
Регистрация: 16.11.2003
Возраст: 24

maximn вне форума Не в сети
companent, я чего-то не пойму, тебе написать формулу матрицы вращения?
  Ответить с цитированием
Старый 05.05.2006, 11:06   #15   
Альдо Апачи
 
Аватар для Xtnshtcgjkjdbyjq
 
Сообщений: 11,183
Регистрация: 21.06.2005
Возраст: 43

Xtnshtcgjkjdbyjq вне форума Не в сети
Из центра треугольника проводишь отрезок до одной из вершин. Вторая вершина будет на таком же расстоянии под углом 2/3Pi, третья - то же, но -2/3Pi. Соединяешь три получившихся точки - получил треугольник. А дальше циклично меняешь угол первого отрезка от 0 до бесконечности - все акуенно крутится.
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind