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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2009, 21:10   #1
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Сообщение Увеличения угла - поворот прямой на угол.

Есть прямая(расположена горизонтально) как сделать что бы правый конец єтой прямой по чучуть вниз опускался?!
Мои расуждения(помогите реализовать): в цикле, или по таймеру!
Lemo вне форума Ответить с цитированием
Старый 30.03.2009, 09:28   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

На каком языке?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.03.2009, 12:03   #3
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Надо использовать параметрическое задание окружности на плоскости:

x=r*sin(t)
y=r*cos(t)
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 30.03.2009, 14:10   #4
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

Делфи!
Так это в цикле нужно делать?!
Lemo вне форума Ответить с цитированием
Старый 30.03.2009, 14:25   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Так что ли?

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  var x,y:double;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);

begin               {$o-}

with Canvas do begin
 FillRect(ClipRect);
 MoveTo(100,100);
 LineTo(Round(100*cos(x)+100),Round(100*sin(x))+100);
 x:=x+0.11;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   x:=0;
end;

end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.03.2009, 16:23   #6
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

Цитата:
Сообщение от Stilet Посмотреть сообщение
Так что ли?

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  var x,y:double;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);

begin               {$o-}

with Canvas do begin
 FillRect(ClipRect);
 MoveTo(100,100);
 LineTo(Round(100*cos(x)+100),Round(100*sin(x))+100);
 x:=x+0.11;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   x:=0;
end;

end.
Все работает, а где поставить условие что бы прямая (из горизонтального положения переходила в угол не больше 90(правый конец)) Этот код похож на часы! Мне бы с 3 до 5 часов =))))
Lemo вне форума Ответить с цитированием
Старый 30.03.2009, 16:33   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну вот мотри - там x в радианах.
т.е. в таймере скажем в конце нужно прописать чет типа:
Код:
if x>pi/2 then TTimer(Sender).enabled:=false;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.03.2009, 20:09   #8
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

Спасибо, работает!
Lemo вне форума Ответить с цитированием
Старый 30.03.2009, 20:48   #9
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

Можешь подкинуть код, когда по этой прямой, которая наклоняеться двигаеться тело(с заданым коф трения)?!
Фурмули: F=N*M (M=коф трения), а при вертикальной прямой сила трения равна F=m*g*M!
Lemo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вращение (поворот на заданный угол) векторного изображения Македонский Мультимедиа в Delphi 6 26.02.2009 21:19
Поворот изображения на заданный угол. taller07 Мультимедиа в Delphi 4 28.11.2008 14:01
Поворот буквы на указанный угол delphin100 Общие вопросы Delphi 1 02.06.2008 16:28
операции увеличения в с++ JOFRIF Помощь студентам 8 26.04.2008 20:25
Угол по тангенсу AVer Общие вопросы Delphi 9 01.02.2007 12:47