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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2011, 23:26   #1
bossraven
Новичок
Джуниор
 
Регистрация: 17.01.2011
Сообщений: 2
По умолчанию движение треугольника по синусоиде паскаль

Необходимо что бы треугольник в центре экрана двигался с верху в низ по синусоиде
Вот примерный код. Понимаю что ахинея и бред, но какова вероятность довести до ума?
проблема собственно как предоставить треугольник для движения
Код:
uses crt,graph;
var r,a,y0,x,y:integer;
begin
clrscr;
write('Radius=');readln(r);
write('Amplituda=');readln(a);
x:=0;
initgraph(x,y,'');
y0:=getmaxY div 2;
x:=r;
y:=y0;
while x<getmaxX do
   BEGIN
      x:=VGA; y:=VGAHi; InitGraph (x,y,'..\bgi');
       If  GraphResult=grOk
         then  begin
                  Line (12,21,52,21); { Горизонтальный отрезок }
                  Line (12,21,32,1);  { Левый катет            }
                  Line (32,1,52,21);  { Правый катет           }
                  ReadLn
               end;
   begin
   y:=y0-round(sin(x*pi/180)*a);
   setcolor(12);
   circle(x,y,r);
   delay(50);
   setcolor(0);
   circle(x,y,r);
   x:=x+2;
   end;
   END;
setcolor(12);
outtextXY(getmaxX div 2-50,getmaxY-30,'Press Enter...');
readln
end.
bossraven вне форума Ответить с цитированием
Старый 18.01.2011, 08:49   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) код написан просто ужасно..
неужели трудно хотя бы выделить InitGraph и нажать F1, потом открыть готовый пример кода и скопировать его?!

2) иницилизация графики производится ОДИН раз.

3) для рисования треугольника рекомендую воспользоваться DrawPoly
опять таки, пример из встроенного хелпа TurboPascal:
Код:
DrawPoly
{Sample code for the Drawpoly function.}

uses Graph;

const
  Triangle: array[1..4] of PointType = ((X: 50; Y: 100), (X: 100; Y:100),
    (X: 150; Y: 150), (X:  50; Y: 100));
var Gd, Gm: Integer;
begin
  Gd := Detect;
  InitGraph(Gd, Gm, '');
  if GraphResult <> grOk then
    Halt(1);
  DrawPoly(SizeOf(Triangle) div SizeOf(PointType), Triangle);{ 4 }
  Readln;
  CloseGraph;
end.
4) окружность Вы зачем выводите?!
Вам нужно считать координаты X,Y согласно заданной функции (в вашем случае - синусоиде) и выводить треугольник по полученным координатам. Кстати, X, Y лучше сделать вещественного типа, а при выводе делать trunc(round(X))

попробуйте для начала просто нарисовать график сунусоиды точками...

сделаете - продолжим...


p.s.
Цитата:
в центре экрана двигался с верху в низ по синусоиде
если Вам не сложно, нарисуйте (можно в любом граф.редакторе) схемку, как это должно выглядеть..
сверху вниз по синусоиде...

Последний раз редактировалось Serge_Bliznykov; 18.01.2011 в 08:51.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.01.2011, 10:15   #3
bossraven
Новичок
Джуниор
 
Регистрация: 17.01.2011
Сообщений: 2
По умолчанию

Спасибо.
Постараюсь сделать.
Если не сделаю на неделе-можно закрыть или удалить.
bossraven вне форума Ответить с цитированием
Старый 18.01.2011, 15:45   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Да не за что.
Успехов!

и, я Вам реально говорю -
1) нарисуйте схемку, как должно осуществляться движение
2) сделайте поточечный вывод синусоиды (фактически эти точечки отобразят движение треугольника)
и я помогу Вам "передвигать" треугольник по этому пути..
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить площадь треугольника по трём точкам [Паскаль] Canavar Помощь студентам 8 08.12.2010 17:35
Движение треугольника по треугольному контуру VD1988 Помощь студентам 0 18.12.2009 18:39
Паскаль вывод треугольника Alex2009 Помощь студентам 2 20.11.2009 15:12
Паскаль, вращение треугольника. Arizonec Помощь студентам 4 03.01.2009 18:52
Движение объекта по синусоиде? Roberto Помощь студентам 10 14.05.2008 17:00