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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2008, 11:12   #1
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию Как изобразить вращение прямых в псевдографике?

Задача: c помощью псевдографики изобразить на экране две прямые, вращающиеся в плоскости экрана каждая вокруг своей точки. Если бы можно было использовать обычную графику, я бы, наверное, изобразил. А так как у меня всегда с пространнствееным зрением было трудно, я никак не пойму, как это должно выглядить.
Иллидан вне форума Ответить с цитированием
Старый 14.10.2008, 16:40   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Код:
uses
  CRT, DOS;
const
  s: array[1..4] of char = (#179,'\',#196,'/');
var
  k: integer;

procedure CursorOff;
var
  r: registers;
begin
  r.AH:=1; r.CH:=$20;
  Intr($10,r);
end; {CursorOff}

procedure CursorOn;
var
  r: registers;
begin
  r.AH:=1; r.CH:=6; r.CL:=7;
  Intr($10,r);
end; {CursorOn}

begin
  ClrScr;
  CursorOff;
  GotoXY(11,10);
  k:=0;
  repeat
    k:=k+1;
    if k > 4 then k:=1;
    write(#8,s[k]);
    delay(100);
  until KeyPressed;
  CursorOn;
end.
_Dmitry вне форума Ответить с цитированием
Старый 14.10.2008, 17:00   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Это очень короткая прямая, предлагаю так.
В прямоугольной матрице рисуем 2 раза по 4 линии, горизонтальную, вертикальную и две диагональных и в цикле с задержкой их выводим.
Код:
uses crt;
var a:array[1..25,1..55]of char;
    i,j:integer;
begin
clrscr;
repeat
for i:=1 to 25 do
  begin
   for j:=1 to 55 do
     begin
      if (i=13)and(((j>=1)and(j<=25))or((j>=31)and(j<=55))) then a[i,j]:='-'
      else a[i,j]:=' ';
      write(a[i,j]);
     end;
    writeln;
  end;
delay(500);
for i:=1 to 25 do
  begin
    for j:=1 to 55 do
      begin
        if (j=i)or(j=i+30) then a[i,j]:='\'
        else a[i,j]:=' ';
        write(a[i,j]);
      end;
    writeln;
  end;
delay(500);
for i:=1 to 25 do
  begin
    for j:=1 to 55 do
      begin
        if (j=13)or(j=44) then a[i,j]:='|'
        else a[i,j]:=' ';
        write(a[i,j]);
      end;
    writeln;
  end;
delay(500);
for i:=1 to 25 do
  begin
    for j:=1 to 55 do
      begin
        if (j=26-i)or(j=56-i) then a[i,j]:='/'
        else a[i,j]:=' ';
        write(a[i,j]);
      end;
    writeln;
  end;
delay(500);
until keypressed;
end.
puporev вне форума Ответить с цитированием
Старый 20.10.2008, 16:20   #4
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию

Цитата:
Это очень короткая прямая, предлагаю так.
В прямоугольной матрице рисуем 2 раза по 4 линии, горизонтальную, вертикальную и две диагональных и в цикле с задержкой их выводим.
Все правильно, только у прямых, вроде как, не должен меняться размер.
Иллидан вне форума Ответить с цитированием
Старый 20.10.2008, 16:23   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
у прямых, вроде как, не должен меняться размер.
У прямых линий нет размера, они бесконечны.
puporev вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вращение текста ксона Помощь студентам 3 25.04.2008 10:40
Изобразить на экране правильный многоугольник, стороны которого окрашены в разные цвета, совершающий внут Sashka Помощь студентам 3 31.01.2008 12:02
Как изобразить в алгоритме!!?? Шурик Общие вопросы Delphi 0 23.10.2007 00:10
Построение прямых Aleksandr Общие вопросы Delphi 21 19.06.2007 15:44