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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2009, 19:13   #1
Kravec
Пользователь
 
Регистрация: 15.04.2009
Сообщений: 62
По умолчанию графика в паскале

Никогда не занимался графикой в паскале, вот по єтому не знаю что к чему...
вот само задание

За заданными координатами центра описанного кола и его радиусом нарисовать 5 - лучевую звезду. Соединить каждую вершину звезды с 2 несопредельными , а также с ее центром

Она должна выглядить вот так
Изображения
Тип файла: jpg Безымянный.jpg (10.8 Кб, 144 просмотров)
Kravec вне форума Ответить с цитированием
Старый 15.04.2009, 21:02   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

на Дельфи пойдёт?
(вставить код в событие onPaint формы):
Код:
procedure TForm1.FormPaint(Sender: TObject);
type
  point = record
   x : integer;
   y : integer;
  end;

var
  Pent : array[1..5] of point;
  p0 : point;
  widthStar  : integer;
  i  : integer;
var
  Radians : double;
  angle     : double;
begin
  p0.x := 250;
  p0.y := 250;
  widthStar := 200;
  angle := 270;

With Form1.Canvas do
  begin
    Pen.Width:= 1;
    Pen.Color:= clRed;

    for i:=1 to 5 do begin
      MoveTo(p0.x,p0.y);
      Radians := angle * Pi / 180;
      Pent[i].x := p0.x + round(Cos(Radians) * widthStar);
      Pent[i].y := p0.y + round(Sin(Radians) * widthStar);
      LineTo(Pent[i].x, Pent[i].y);
      angle := angle + 72;
    end;

    Pen.Width:= 2;
    Pen.Color:= clBlack;
    MoveTo(Pent[1].x, Pent[1].y);
    LineTo(Pent[3].x, Pent[3].y);
    LineTo(Pent[5].x, Pent[5].y);
    LineTo(Pent[2].x, Pent[2].y);
    LineTo(Pent[4].x, Pent[4].y);
    LineTo(Pent[1].x, Pent[1].y);
  end;

end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.04.2009, 15:59   #3
Kravec
Пользователь
 
Регистрация: 15.04.2009
Сообщений: 62
По умолчанию

спасибо большое ) а как его преобразовать в Паскале ?
Kravec вне форума Ответить с цитированием
Старый 16.04.2009, 16:03   #4
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

и откуда только задание на графику в паскале тому, кто никогда не занимался графикой в паскале
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Старый 16.04.2009, 16:39   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Радуйся:
Код:
uses graph;
type
  point = record
   x : integer;
   y : integer;
  end;
var        gd,gm:integer;
  Pent : array[1..5] of point;
  p0 : point;
  widthStar  : integer;
  i  : integer;
  Radians : double;
  angle     : double;
begin
  p0.x := 250;
  p0.y := 250;
  widthStar := 200;
  angle := 270;
           initgraph(gd,gm,'');
  begin
    for i:=1 to 5 do begin
      MoveTo(p0.x,p0.y);
      Radians := angle * Pi / 180;
      Pent[i].x := p0.x + round(Cos(Radians) * widthStar);
      Pent[i].y := p0.y + round(Sin(Radians) * widthStar);
      LineTo(Pent[i].x, Pent[i].y);
      angle := angle + 72;
    end;
    MoveTo(Pent[1].x, Pent[1].y);
    LineTo(Pent[3].x, Pent[3].y);
    LineTo(Pent[5].x, Pent[5].y);
    LineTo(Pent[2].x, Pent[2].y);
    LineTo(Pent[4].x, Pent[4].y);
    LineTo(Pent[1].x, Pent[1].y);
  end;
  readln;
 closegraph;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.04.2009, 17:27   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от OCTAGRAM
и откуда только задание на графику в паскале тому, кто никогда не занимался графикой в паскале
OCTAGRAM, полностью с Вами согласен, коллега!

___________________________________ __
Kravec, дело в том, что выше приведён практически готовый код!
Добавить иницилизацию графики, заменить задание цвета (пара строчек)... и всё!
Как же Вы собираетесь всё это сдавать, если ровном счётом ничего в этом не понимаете?! И даже не пытаетесь?! ;(

впрочем, что я распинаюсь...
вот ПОЛНОСТЬЮ ГОТОВАЯ программа:
Код:
uses Graph;
type
  point = record
   x : integer;
   y : integer;
  end;

var
  Pent : array[1..5] of point;
  p0 : point;
  widthStar  : integer;
  i  : integer;
  Radians   : double;
  angle     : double;
  grDriver  : Integer;
  grMode    : Integer;
  ErrCode   : Integer;

begin

  grDriver := Detect;
  InitGraph(grDriver, grMode,'');{bgi драйвера должны лежать рядом с exe-шником!}
  ErrCode := GraphResult;
  if ErrCode = grOk then
  begin  { Do graphics }
    p0.x := 250;
    p0.y := 250;
    widthStar := 150;
    angle := 270;

     setfillstyle(9,red);
     setcolor(red);

     for i:=1 to 5 do begin
        MoveTo(p0.x,p0.y);
        Radians := angle * Pi / 180;
        Pent[i].x := p0.x + round(Cos(Radians) * widthStar);
        Pent[i].y := p0.y + round(Sin(Radians) * widthStar);
        lineTo(Pent[i].x, Pent[i].y);
        angle := angle + 72;
      end;

      setcolor(White);
      MoveTo(Pent[1].x, Pent[1].y);
      LineTo(Pent[3].x, Pent[3].y);
      LineTo(Pent[5].x, Pent[5].y);
      LineTo(Pent[2].x, Pent[2].y);
      LineTo(Pent[4].x, Pent[4].y);
      LineTo(Pent[1].x, Pent[1].y);
      readln;
      CloseGraph;
  end
  else begin
    Writeln('Graphics error:', GraphErrorMsg(ErrCode));
    Readln;
  end;
end.
___________________________________ __________
ДОБАВЛЕНО!
да.. Виталий, не успел... опять не обновил страницу, и не увидел Вашего сообщения...
за что сам и поплатился - иначе бы не тратил время на готовый код...

Последний раз редактировалось Serge_Bliznykov; 16.04.2009 в 17:31.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графика в Паскале =)) barahlysh Помощь студентам 4 13.12.2009 19:31
Графика на Паскале HECTOR.A. Помощь студентам 1 24.03.2009 04:14
Графика в паскале modulrev Помощь студентам 16 12.03.2009 10:30
Графика на паскале..... КиношкА Помощь студентам 8 10.01.2008 10:09
Графика в Паскале Win't Паскаль, Turbo Pascal, PascalABC.NET 2 16.12.2007 21:54