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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2011, 22:25   #1
Silverstone
Пользователь
 
Регистрация: 13.12.2011
Сообщений: 75
По умолчанию Паскаль графика. Исправить...

Что нужно сделать:
Цитата:
Написать процедуру рисования полигона. Параметры: 1) ад-рес массива координат полигона (так как количество вершин каж-дый раз разное – параметр нетипизирован); 2) количество вершин полигона. В процедуре привести нетипизированный параметр к удобному для программиста типу и нарисовать полигон. Из основ-ной программы обратиться к данной процедуре 3 раза, в качестве фактического параметра использовать различные структуры дан-ных, хранящие координаты полигонов (например, массив записей, двумерный массив, одномерный массив).
Сам код:
Код:
Program r12;
Uses graph;
type
    coords = record
    x:word;
    y:word;
    end;
    arr1=array[1..12] of coords;
    arr2=array[1..24] of word;
    arr3=array[1..12, 1..2] of word;
Var
    GD,Gm:integer;
    a:arr1;
    b:arr3;
    c:arr2;
    phi:real;
    x,y:word;
    i:1..12;
procedure abc(var t;const n:byte);
type arrmax=array[1..16383,1..2] of word;
  var i:byte;
	begin
  for i:=1 to n do
      begin
      if i=1 then moveto(arrmax(t)[i,1],arrmax(t)[i,2])
             else lineto(arrmax(t)[i,1],arrmax(t)[i,2]);
      if i=n then lineto(arrmax(t)[1,1],arrmax(t)[1,2]);
      end;
	end;

Begin
  randomize;
  gD:=detect;
  gM:=2;
  initGraph (gD,gM,'..\bgi\');


 {for i:=1 to 12 do
	    begin
      phi:=(pi/6)*(i-1);
      y:=240-round(sin(phi)*100);
      x:=320+round(cos(phi)*100);
      a[i].x:=x;
      a[i].y:=y;
      b[i,1]:=x;
    	b[i,2]:=y;
      c[i*2-1]:=x;
      c[i*2]:=y;
	    end;}

  abc(a,12); readln; cleardevice; readln;
  abc(b,12); readln;cleardevice; readln;

  abc(c,12);

readln;
end.
Помогите переделать выделенную часть в коде на функцию, которая рисовала бы любой другой полигон
Silverstone вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графика в Delphi, как исправить или что дописать Марина 666 Помощь студентам 0 16.12.2011 00:10
DiretX графика. Инициализация. Как исправить ошибку? Ibanez Wizard Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 12.08.2011 01:06
исправить ошибку,Паскаль Aidar9119 Помощь студентам 4 05.01.2011 17:55
Паскаль.Исправить ошибку! kikimka Помощь студентам 2 16.03.2010 08:17
исправить ошибку ..паскаль. qasw Помощь студентам 6 07.10.2009 20:33