Как сделать снег в паскале

Обновлено: 05.07.2024

Ответ от Ўрий[гуру]
program baba;
uses graph;
var a,b:integer;
begin
a:=detect;
initgraph(a,b,”);
setbkcolor(1);
Setcolor(15);
circle(358,183,36);
circle(358,287,70);
circle(358,475,115);
line(317,151,399,151);
line(317,151,340,100);
line(340,100,378,100);
line(378,100,399,151);
arc(358,183, 360,170,25);
circle(346,170,5);
circle(370,170,5);
ellipse (294,592,360,0,31,18);
ellipse (410,595,360,0,31,18);
line(288,287,183,393);
Line(212,364,212,406);
line(212,364,174,365);
line(427,287,507,393);
line(485,364,516,406);
line(536,365,485,365);
readln;
closegraph;
end.
Не проверял, напиши что получилось

Чтобы добавить хороший ответ необходимо:

  • Отвечать достоверно на те вопросы, на которые знаете правильный ответ;
  • Писать подробно, чтобы ответ был исчерпывающий и не побуждал на дополнительные вопросы к нему;
  • Писать без грамматических, орфографических и пунктуационных ошибок.

Этого делать не стоит:

Есть сомнения?

Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.

Трудности с домашними заданиями? Не стесняйтесь попросить о помощи – смело задавайте вопросы!

Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.

Другие интересные вопросы и ответы

Почему Дисней решили сделать Эластикгерл такую большую попу?

Как отобразить выделенную область в SAI ?

procedure RLine(x, y, x1, y1: real):=Line(Round(x), Round(y), Round(x1), Round(y1));

procedure Draw(x, y, l: real; iterations: integer);

var lx := x + l * Cos(Angle);

var ly := y + l * Sin(Angle);

var angle1 := -Pi / 2 + Angle;

var rx := x + l * Cos(angle1);

var ry := y + l * Sin(angle1);

if iterations > 0 then

Draw(lx, ly, l, iterations);

Draw(rx, ry, l, iterations);

Draw(300, 300, 200, 7);

procedure RLine(x, y, x1, y1: real):=Line(Round(x), Round(y), Round(x1), Round(y1));

procedure Draw(x, y, l: real);

RLine(xp, y, xp, ym);

RLine(xp, y, xp, yp);

RLine(xm, y, xm, ym);

RLine(xm, y, xm, yp);

Draw(Window.Width / 2, Window.Height / 2, 100);

Чёртова лестница Кантора:

procedure RLine(x, y, x1, y1: real):=Line(Round(x), Round(y), Round(x1), Round(y1));

function Distance(x, y, x1, y1: real):= Sqrt(Sqr(x1 — x) + Sqr(y1 — y));

procedure Draw(x, y, x1, y1: real);

var dx := (x1 — x) / 3;

var my := (y1 + y) / 2;

RLine(x + dx, my, x + 2 * dx, my);

var x2 := x + 2 * dx;

if Distance(x, y, x1, y1) Volobuev 6

Как в паскаль ABC нарисовать полностью закрашенный треугольник?

Ты закрашиваешь ту точку, из которой рисуешь линию
закрашивай внутри треугольника

Как сделать овал под определенным углом в программе Pascal graphABC?

Привет. Под углом овал рисуется помощью кода, вот пример элипса под углом:

uses graphABC;
function rot_x(x,y:integer;t:real):integer;
begin
rot_x:=round(x*cos(t)-y*sin(t));
end;
function rot_y(x,y:integer;t:real):integer;
begin
rot_y:=round(x*sin(t)+y*cos(t));
end;
procedure ellips(x,y,a,b:integer;u:real; c:integer);
var sx,sy,rx,ry,i:integer;
du:real;
begin
sx:=x+rot_x(a,0,u);
sy:=y+rot_y(a,0,u);
setpencolor(c);
moveto(sx,sy);
du:=0;
for i:=1 to 38 do
begin
du:=du+pi/20;
rx:=round(a*cos(du));
ry:=round(b*sin(du));
lineto(x+rot_x(rx,ry,u),y+rot_y(rx,ry,u));
end;
lineto(sx,sy);
end;
var x0,y0:integer;
begin
x0:=windowwidth div 2;
y0:=windowheight div 2;
ellips(x0,y0,100,25,pi/4,clRed);
ellips(x0,y0,100,25,3*pi/4,clBlue);
end.

Для работы с графикой в pascal abc используется модуль GraphABC. Для его подключения используется следующий код:

uses GraphABC; begin . end.

Система координат в Паскале соответствует экранной системе координат и выглядит следующим образом:

Система координат в паскале

Управление цветом

Для того, чтобы использовать цвет, необходимо применить этот цвет к инструменту перо:

  • SetPenColor(color) — устанавливает цвет пера, задаваемый параметром color;
  • setBrushColor(color) — устанавливает цвет кисти, задаваемый параметром color;
  • либо для палитры RGB: SetPenColor(rgb(0-255, 0-255, 0-255));

или использовать для заливки:

После чего можно использовать процедуры для рисования геометрических фигур.

clBlack – черный
clPurple – фиолетовый
clWhite – белый
clMaroon – темно-красный
clRed – красный
clNavy – темно-синий
clGreen – зеленый
clBrown – коричневый
clBlue – синий
clSkyBlue – голубой
clYellow – желтый
clCream – кремовый
clAqua – бирюзовый
clOlive – оливковый
clFuchsia – сиреневый
clTeal – сине-зеленый
clGray – темно-серый
clLime – ярко-зеленый
clMoneyGreen – цвет зеленых денег
clLtGray – светло-серый
clDkGray – темно-серый
clMedGray – серый
clSilver – серебряный

Точки, отрезки и ломаные

Для отображения точки в паскале используется процедура:

точки в паскале

uses GraphABC; begin SetPixel(300,200,clred); end.

Для рисования линии используется:

паскаль линия

uses GraphABC; begin SetPenColor(clgreen); line(100,50,500,250); end.

ломаные в паскале

Ломаные можно рисовать с помощью процедур MoveTo (x1, y1) и LineTo (x2, y2) .
Процедуры работают в паре: MoveTo передвигает курсор в определенную точку, а процедура LineTo рисует линию с этой точки до точки, определенной параметром данной процедуры.

uses GraphABC; begin . SetPenColor(clblue); MoveTo (x1, y1); LineTo (x2, y2); LineTo (x3, y3); LineTo (x4, y4); LineTo (x5, y5); end.

Задание 0: При помощи операторов SetPenColor(), LineTo (x2, y2) и MoveTo (x1, y1) нарисовать квадрат и равносторонний треугольник.

[Название файла: L4_2task0.pas ]

Для установки размеров графического окна используется процедура

Рисование фигур

прямоугольник в паскале

uses GraphABC; begin Rectangle(50,50,200,200); end.

Фигуры с заливкой

uses GraphABC; begin Rectangle(50,50,200,200); FloodFill(100,100,clBlue); end.

Line(x1,y1,x2,y2);
LineTo(x,y);

треугольник в паскале

uses GraphABC; begin setpenwidth(20); setpencolor(clred); moveTo(300,100); lineTo(500,300); lineto(100,300); lineto(300,100); floodfill(300,200,clgreen); end.

круг в паскале

uses GraphABC; begin Circle(500,200,100); FloodFill(500,200,clred); end.

Дуга окружности

uses GraphABC; Begin SetPenWidth(10); Arc(300,250,150,45,135); end.

[Название файла: L4_2task1.pas ]

[Название файла: L4_2task2.pas ]

Функция random для использования окраски

Задание 3: Нарисовать горизонтальный ряд окружностей радиусом 10 на расстоянии 100 от верхнего края экрана и с такими горизонтальными координатами 50, 80, 110, 140, … , 290.

* раскрасить круги случайным цветом

[Название файла: L4_2task3.pas ]

[Название файла: L4_2task4.pas ]

графика паскаль abc.net

Задание 5:
Воспроизвести изображение при помощи программы:

[Название файла: L4_2task5.pas ]

алгоритм штриховки на паскале

Нарисовать штриховку на Паскале можно, используя процедуры рисования прямоугольника и линии:

Программа будет выглядеть следующим образом:

1_1

uses graphABC; var i, x1, x2, y1, y2, N: integer; h, x: real; begin x1 := 100; y1 := 100; x2 := 300; y2 := 200; N := 10; Rectangle (x1, y1, x2, y2); h := (x2 - x1) / (N + 1); x := x1 + h; for i:=1 to N do begin Line(round(x), y1, round(x), y2); x := x + h; end; end.

[Название файла: L4_2task6.pas ]

Анимация в Паскале

Анимация в программировании заключается в том, что сначала рисуется фигура цветным инструментом, затем с тем же координатами рисуется та же фигура белым цветом. После чего происходит сдвиг фигуры и действия повторяются.

uses GraphABC; var x:integer; begin x:=40; repeat SetPenColor(clWhite); Circle(x,100,10); SetPenColor(clBlack); Circle(x,100,10); x:=x+1 until x>600; end.


Задание 7: Выполнить анимацию движения квадрата по следующей траектории:

Анимация в паскаль Движение графического объекта в паскаль

В этой статье мы научимся перемещать графические объекты программах на паскаль, т.е. создавать анимацию на паскаль
Для эффекта передвижения на экране в программе паскаль, необходимо рисовать графический объект после паузы стирать его и рисовать с новыми координатами.

Общая структура программы для анимации на паскаль
for i:=1 to n do
begin
1 нарисовать объект,
2 подождать какое-то время с помощью команды sleep(время паузы);
3 очистить экран
4 изменить координаты объекта согласно направлению движения и его скорости
end;
5 рисуем конечное положение объекта

Падающие случайные точки

Наманная прожка. Я в текстовом режиме такое делал, выпадали случайные буквы (из заданного текста) и накапливались внизу (пока весь текст не осыпался). Причем имитировал порывы ветра для красоты. Вам наверное тоже в текстовом режиме лучше "*", чтобы снежинки падали. Давно это было в детстве. Не НацГимназия случаем?


нужны модули graph или crt. сейчас нету этих модулей так что незнаю будет работать или нет :) создаём массив m [1..MaxX,1..MaxY] of boolean; алгоритм примерно такой changes=1; repeat changes=0; for x:=1 to maxX do for y:=maxY downto 1 do if (m[x,y]=true)and(y>1) then begin newX:=x+Random(2)-1; newY:=y+Random(2); if m[newX,newY]=false then begin m[newX,newY]:=m[x,y]; m[x,y]:=false; changes=1; end; end; отрисовка for x:=1 to maxX do for y:=1 to maxY do begin if m[x,y]=true then clr=getmaxcolor else clr=0; PutPixel(x,y,clr); end; ReadKey; until (keypressed)or(changes=0);


Без graph И crt работать не будет

Без graph не будет с графикой работать, без crt с клавой (функция keypressed). Насколько мне моя память позволяет. Так, что лучше в текстовом режиме. Плюс мне каэтся у тебя пока ряд снежинок (точек) не долетит до земли следующие не вылетят? И некоторые зависнут в воздухе не долетев до земли. Т.е. как то на снего не похоже.

Читайте также: