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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2011, 15:42   #1
smith732
Новичок
Джуниор
 
Регистрация: 18.12.2011
Сообщений: 3
По умолчанию Нарисовать несколько окружностей, включая то, что они могут быть поверх друг друга

Код:
    with shapes[i] do
      case TAG of
        Rect: begin
                SetFillStyle(1, Color);
                Bar(rp1.x, rp1.y, rp2.x, rp2.y);
              end;
        tCircle: begin
                  Circle(x,y,r);
                  SetFillStyle(1, shapes[i].Color);
                  FloodFill(x,y,shapes[i].Color);
                 end;
      end;
Никогда не понимал, как можно удобно рисовать в паскале и для людей ли вообще предназначался модуль graph. Дело в том, что прямоугольники залитые цветом программа рисует нормально, но как только дело касается окружностей, то ничего не работает. Экран просто заполняется цветом. Пробовал устанавливать цвет линии, всё равно бывает что какие-то два цвета сольются, в итоге неверно закрашено. Можно ли сделать так, чтобы нарисовать где-то в памяти круг, а потом тупо попиксельно перенести? Пробовал один метод, но он не помогает. Или как-нибудь иначе можно нормально нарисовать окружности? Спасибо.
smith732 вне форума Ответить с цитированием
Старый 18.12.2011, 21:21   #2
smith732
Новичок
Джуниор
 
Регистрация: 18.12.2011
Сообщений: 3
По умолчанию

Всё ещё актуально.
smith732 вне форума Ответить с цитированием
Старый 18.12.2011, 21:47   #3
zhan313
Пользователь
 
Регистрация: 09.12.2011
Сообщений: 44
По умолчанию

PiesLice Спасет ?
zhan313 вне форума Ответить с цитированием
Старый 18.12.2011, 21:57   #4
smith732
Новичок
Джуниор
 
Регистрация: 18.12.2011
Сообщений: 3
По умолчанию

zhan313, спасёт. Спасибо. Но вот что делать, если нужно будет рисовать многоугольники? Или например треугольник? Треугольник рисуется посредством трёх линий и закрашивания внтутренней области, но если треугольник будет пересекаться с другими фигурами, уже закрашенными, то здесь возникают трудности.
smith732 вне форума Ответить с цитированием
Старый 19.12.2011, 14:48   #5
zhan313
Пользователь
 
Регистрация: 09.12.2011
Сообщений: 44
По умолчанию

Код:
procedure FillEllipsePlay;
{ Random filled ellipse demonstration }
const
  MaxFillStyles = 12; { patterns 0..11 }
var
  MaxRadius : word;
  FillColor : integer;
begin
  MainWindow('FillEllipse demonstration');
  StatusLine('Esc aborts or press a key');
  MaxRadius := MaxY div 10;
  SetLineStyle(SolidLn, 0, NormWidth);
  repeat
    FillColor := RandColor;
    SetColor(FillColor);
    SetFillStyle(Random(MaxFillStyles), FillColor);
    FillEllipse(Random(MaxX), Random(MaxY),
                Random(MaxRadius), Random(MaxRadius));
  until KeyPressed;
  WaitToGo;
end; { FillEllipsePlay }

procedure PolyPlay;
{ Draw random polygons with random fill styles on the screen }
const
  MaxPts = 5;
type
  PolygonType = array[1..MaxPts] of PointType;
var
  Poly : PolygonType;
  I, Color : word;
begin
  MainWindow('FillPoly demonstration');
  StatusLine('Esc aborts or press a key...');
  repeat
    Color := RandColor;
    SetFillStyle(Random(11)+1, Color);
    SetColor(Color);
    for I := 1 to MaxPts do
      with Poly[I] do
      begin
        X := Random(MaxX);
        Y := Random(MaxY);
      end;
    FillPoly(MaxPts, Poly);
  until KeyPressed;
  WaitToGo;
end; { PolyPlay }
Окружности и многоугольники с заполнением
выцепил из BGIDEMO.PAS от Borland.
zhan313 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В графике закрасить определенными цветами несколько вложенных друг в друга полигонов (Delphi) hunter03 Помощь студентам 4 02.10.2011 10:49
даны три числа. Если они могут быть длинами сторон треугольника, определите его вид и найдите высоты (Паскаль) charming Помощь студентам 8 26.09.2011 20:48
Формы не видят друг друга Delphi74 Общие вопросы Delphi 4 23.08.2011 11:46
Как сделать так, что б Float-элементы не уезжали друг под друга (если не влазят в экран) barbiturat HTML и CSS 3 09.12.2008 10:26
Наложения изображения друг на друга rudakop HTML и CSS 1 16.09.2008 03:03