IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Найдите ошибку, Графика
Neon6868
сообщение 11.12.2007 20:25
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  0  +


Задание: Построить три равносторонних треугольника, вращающихся вокруг одной из своих вершин. Эти вершины должны находиться на одинаковом расстоянии от центра экрана.

Треугольник строится не равносторонний!Подскажите почему? И подскажите как сделать вращение?
Программа:

  

Program Grafika;
  uses Graph,CRT;
  var
    x,y,x1,y1,x2,y2,x3,y3,a1,b1,a2,b2,a3,b3,c1,d1,c2,d2,c3,d3,r:integer;
  procedure GraphRezhim;
  var
    Driver,Mode,Error:integer;
  begin
    Driver:=detect;
    Initgraph(Driver,Mode,'D:\BGI');
    Error:=GraphResult;
    if Error<>grOk then writeln('GraphErrorMsg(Error)');
  end;
  procedure Vershini(var x1,y1,a1,b1,c1,d1:integer;x,y,r:integer);
  var
    coo:ArcCoordsType;
  begin
    Arc(x,y,0,90,r);
    GetArcCoords(coo);
    x1:=coo.Xend;
    y1:=coo.Yend;
    Arc(x,y,0,210,r);
    GetArcCoords(coo);
    a1:=coo.Xend;
    b1:=coo.Yend;
    Arc(x,y,0,330,r);
    GetArcCoords(coo);
    c1:=coo.Xend;
    d1:=coo.Yend;
    ClearDevice;
  end;
  procedure Treugolnik(var x1,y1,x2,y2,x3,y3:integer;x,y:integer);
  begin
    x:=round((GetMaxX div 10)*cos(2*pi*1/3));
    y:=round((GetMaxX div 10)*sin(2*pi*1/3));
    x1:=x1+x;
    y1:=y1+y;
    x:=round((GetMaxX div 10)*cos(2*pi*2/3));
    y:=round((GetMaxX div 10)*sin(2*pi*2/3));
    x2:=x1+x;
    y2:=y1+y;
    x:=round((GetMaxX div 10)*cos(2*pi*3/3));
    y:=round((GetMaxX div 10)*sin(2*pi*3/3));
    x3:=x2+x;
    y3:=y2+y;
    line(x1,y1,x2,y2);
    line(x3,y3,x1,y1);
    line(x2,y2,x3,y3);
  end;
  procedure Dvizhenie(x1,y1,x2,y2,x3,y3,
    a1,b1,a2,b2,a3,b3,c1,d1,c2,d2,c3,d3:integer);
  begin
    while not keypressed do
      begin
{Не знаю как сделать}
      end;
  end;
Begin
  GraphRezhim;
  Vershini(x1,y1,a1,b1,c1,d1,GetMaxX div 2,GetMaxY div 2,GetMaxY div 4);
  Treugolnik(x1,y1,x2,y2,x3,y3,x1,y1);
  Treugolnik(a1,b1,a2,b2,a3,b3,a1,b1);
  Treugolnik(c1,d1,c2,d2,c3,d3,c1,d1);
  readln;
End.
 
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 31.07.2025 3:54
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"