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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2009, 14:35   #1
netbioz
Пользователь
 
Регистрация: 24.05.2009
Сообщений: 56
По умолчанию Графика Паскаля

Помогите решить эту задачку :

Построить группу кол заданного радиуса, центра которых равномерно смещении от общего центра по N направлениях. Количество по всем направлениям одинакова и равняется K.

Вот что должно выйти
Изображения
Тип файла: jpg Фото001.jpg (61.0 Кб, 154 просмотров)
netbioz вне форума Ответить с цитированием
Старый 02.06.2009, 15:10   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Паскаля под рукой нет, но механизм вычислений вот покажу:
Код:
const rad=50;
var b,a:Double;k,x,y,cx,cy,i:integer;
begin
 i:=5;b:=2*pi/i;
 a:=0;
 with Canvas do begin
 Brush.Style:=bsClear;
  while a<(2*pi) do begin
  cx:=400;
  cy:=400;
   for k:=1 to 5 do begin
    x:=Round(20*k*COS(a));
    y:=Round(20*k*SIN(a));
    Ellipse(cx+x-rad,cy+y-rad,cx+x+rad,cy+y+rad);
   end;
     a:=b+a;
  end;
 end;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.06.2009, 18:27   #3
netbioz
Пользователь
 
Регистрация: 24.05.2009
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Паскаля под рукой нет, но механизм вычислений вот покажу:
Код:
const rad=50;
var b,a:Double;k,x,y,cx,cy,i:integer;
begin
 i:=5;b:=2*pi/i;
 a:=0;
 with Canvas do begin
 Brush.Style:=bsClear;
  while a<(2*pi) do begin
  cx:=400;
  cy:=400;
   for k:=1 to 5 do begin
    x:=Round(20*k*COS(a));
    y:=Round(20*k*SIN(a));
    Ellipse(cx+x-rad,cy+y-rad,cx+x+rad,cy+y+rad);
   end;
     a:=b+a;
  end;
 end;
end;
а как это подогнать под Паскаль ? а то я в этом не бум бум

что делать с этим кодом ? помогите ...

Код:
uses crt,graph;
const rad=10;
var b,a:Double;k,x,y,cx,cy,i,driver,mode:integer;
begin
 driver:=detect;
 initgraph(driver,mode,'e:\pascal\bp-2\bgi');
 i:=5;b:=2*pi/i;
 a:=0;


  while a<(2*pi) do
  begin
  cx:=100;
  cy:=100;
   for k:=1 to 5 do begin
    x:=Round(10*k*COS(a));
    y:=Round(10*k*SIN(a));
    Ellipse(cx+x-rad,cy+y-rad,0,360,cx+x+rad,cy+y+rad);
   end;
     a:=b+a;
     end;
readln;
  closegraph;
 end.
вот изменил , а оно рисует не то что надо ... помогите

Последний раз редактировалось Stilet; 03.06.2009 в 08:01.
netbioz вне форума Ответить с цитированием
Старый 02.06.2009, 20:43   #4
Kravec
Пользователь
 
Регистрация: 15.04.2009
Сообщений: 62
По умолчанию

так не правильный код , тут правь не правь , а новый писать надо
Kravec вне форума Ответить с цитированием
Старый 02.06.2009, 20:52   #5
netbioz
Пользователь
 
Регистрация: 24.05.2009
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Kravec Посмотреть сообщение
так не правильный код , тут правь не правь , а новый писать надо
ну помогите сделать правильно ....будьте добры
netbioz вне форума Ответить с цитированием
Старый 03.06.2009, 01:15   #6
Kravec
Пользователь
 
Регистрация: 15.04.2009
Сообщений: 62
По умолчанию

вот прога , думаю что так должно быть
Код:
uses crt,graph;
const
  rad = 50;
  b   = 2*pi/5;
var
  a: Double;
  k,x,y,cx,cy,
  driver,mode:integer;
begin
  driver:=detect;
  initgraph(driver,mode,'e:\pascal\bp-2\bgi');
  a := 0;
  while a<(2*pi) do begin
    cx:=getmaxx div 2;
    cy:=getmaxy div 2;
    for k:=1 to 10 do begin
      x:= Round(10*k*COS(a));
      y:= Round(10*k*SIN(a));
      Ellipse(cx+x-rad,cy+y-rad,0,360, rad, rad);
   end;
   a:=b+a;
  end;
  readln;
  closegraph;
end.
Kravec вне форума Ответить с цитированием
Старый 03.06.2009, 08:06   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот паскаль достал )
Код:
uses graph;
const rad=50;
var b,a:Double;k,x,y,cx,cy,i:integer;
begin
 i:=detect;
 initgraph(i,x,'');
 i:=5;b:=2*pi/i;
 a:=0;
  while a<(2*pi) do begin
  cx:=400;
  cy:=400;
   for k:=1 to 5 do begin
    x:=Round(20*k*COS(a));
    y:=Round(20*k*SIN(a));
    Circle(cx+x,cy+y,rad);
   end;
     a:=b+a;
  end;
  readln;
  closegraph;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сканнер Паскаля nusik Общие вопросы C/C++ 4 24.04.2009 23:04
Интерпретатор Паскаля SvetickPro Помощь студентам 1 17.10.2008 22:00
Русификация паскаля Exact Паскаль, Turbo Pascal, PascalABC.NET 7 21.03.2008 14:15
Настройка паскаля Snake_ua Паскаль, Turbo Pascal, PascalABC.NET 7 18.10.2007 17:56
перенос с паскаля на си Ядовитый Общие вопросы C/C++ 2 29.06.2007 13:17