Перейти до вмісту

Заставка на T.Pascal


Повідомлень в темі: 5

#1 @_Kat_@

    Профі

  • Користувачі
  • PipPipPipPipPipPipPip
  • 370 повідомлень
  • Стать:Жінка
  • Місто:Кременчук

Відправлено 15.01.2009 – 22:39

  • 5
доброї ночі :) хотіла запитати чи хтось може поділитися простенькими заставками на паскалі?...........бо треба такая штукенція до курсової <_<

#2 Lukom

    Абориген

  • Користувачі
  • PipPipPipPip
  • 112 повідомлень
  • Стать:Чоловік
  • Місто:Ukraine-Lviv

Відправлено 15.01.2009 – 22:59

я робив, таку як у віндовсі - ти летиш вперед в космосі, але робив на C++... Ось код:
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
#include <conio.h>
#include <dos.h>
#include <math.h>

const int n = 200;
double x[n];
double y[n];

void InitGraphics()
{
	int gdriver = DETECT, gmode, errorcode;
	initgraph(&gdriver, &gmode, "..\\bgi\\");
	errorcode = graphresult();
	if (errorcode != grOk)
	{
		printf("Graphics error: %s\n", grapherrormsg(errorcode));
		exit(0);
	}
}

void main()
{
	InitGraphics();
	double maxx = getmaxx();
	double maxy = getmaxy();
	double xx = maxx/2;
	double yy = maxy/2;
	int z = 300;
	double sqrtZ = sqrt(z);
	double a, b, c, a2, b2, c2, eps = 1e-3;

	while(!kbhit())
	{
		cleardevice();
		for (int i = 0; i < n; ++i)
		{
			if (x[i] <= 0 || x[i] >= maxx
				|| y[i] <= 0 || y[i] >= maxy)
			{
				double rand = pow(random((sqrtZ)*1000)/1000.0, 2);
				double angle = (random(360)/180.0)*M_PI;
				x[i] = ((rand*cos(angle) + z)/(2*z))*maxx;
				y[i] = ((rand*sin(angle) + z)/(2*z))*maxy;
			}

			a = x[i] - xx;
			b = y[i] - yy;
			c = sqrt(a*a + b*b);
			if (c < eps)
			{
				x[i] = -1;
				y[i] = -1;
				continue;
			}
			c2 = c + c*.1;
			a2 = c2*(a/c);
			b2 = c2*(b/c);
			x[i] = xx + a2;
			y[i] = yy + b2;

			putpixel(x[i], y[i], 15);
		}
		delay(100);
	}
	closegraph();
}

Також на паскалі колись бавився. Ось заставка - малює кружечки випадковим чином:
Program lll;
uses crt,graph;
var i,j,k,n:integer;
	driver,mode:integer;
	c:char;
begin
clrscr;

detectgraph(driver,mode);
initgraph(driver,mode,'..\bgi');

repeat
for j:=random(100) to 1000 do
begin
n:=random(1000);
 if (j mod 2)=0 then setcolor(14);
 if (j mod 3)=0 then setcolor(13);
 if (j mod 5)=0 then setcolor(12);
 if (j mod 7)=0 then setcolor(11);
   circle(n,j,10);
   delay(100);
n:=n+1;
end;
until keypressed;

end.

А ось ще якась, тут здається літав кружечок і відбивався від стінок екрану:
Program kuljka;
uses crt,graph;
label 111,222,333,444,555;
var sx,sy,mx,my,x1,x2,x3,xx,y1,y2,y3,yy:integer;
	i,j,k,n,l:integer;
	driver,mode:integer;
	c:char;
begin
clrscr;
write(' Natysny 1 abo 2 ');
readln(k);
write('Stop - ENTER');
readln;
detectgraph(driver,mode);
initgraph(driver,mode,'A:\');
n:=0;
j:=0;
l:=0;


111 : while l=0 do
  begin
  if n=630 then goto 444;
  if j=470 then goto 222;
if keypressed then c:=readkey;
if c=#13 then goto 555;
  i:=random(15);
  setcolor(i);
  circle(n,j,10);
  delay(100);
	if k=1 then
	begin
	setcolor(0);
	circle(n,j,10);
	end;
  j:=j+1;
  n:=n+1;
  end;

222: while l=0 do
  begin
  if n=630 then goto 333;
  if j=10 then goto 111;
if keypressed then c:=readkey;
if c=#13 then goto 555;
  i:=random(15);
  setcolor(i);
  circle(n,j,10);
  delay(100);
	if k=1 then
	begin
	setcolor(0);
	circle(n,j,10);
	end;
  j:=j-1;
  n:=n+1;
  end;

333 : while l=0 do
  begin
  if n=0 then goto 222;
  if j=10 then goto 444;
if keypressed then c:=readkey;
if c=#13 then goto 555;
  i:=random(15);
  setcolor(i);
  circle(n,j,10);
  delay(100);
	if k=1 then
	begin
	setcolor(0);
	circle(n,j,10);
	end;
  j:=j-1;
  n:=n-1;
  end;

444 : while l=0 do
  begin
  if n=0 then goto 111;
  if j=470 then goto 333;
if keypressed then c:=readkey;
if c=#13 then goto 555;
  i:=random(15);
  setcolor(i);
  circle(n,j,10);
  delay(100);
	if k=1 then
	begin
	setcolor(0);
	circle(n,j,10);
	end;
  j:=j+1;
  n:=n-1;
  end;

555 : end.

Повідомлення відредагував Lukom: 15.01.2009 – 23:02

  • 0

#3 @_Kat_@

    Профі

  • Користувачі
  • PipPipPipPipPipPipPip
  • 370 повідомлень
  • Стать:Жінка
  • Місто:Кременчук

Відправлено 16.01.2009 – 00:23

дуже дякую, подивлюсь як вона працює......але ж курсова в мене повністю на паскалі((

Повідомлення відредагував @_Kat_@: 16.01.2009 – 00:24

  • 0

#4 Lactarius

    Генеральний писар

  • Користувачі
  • PipPipPipPipPipPipPipPipPip
  • 976 повідомлень
  • Стать:Чоловік
  • Місто:Львів

Відправлено 16.01.2009 – 02:09

Цитата

дуже дякую, подивлюсь як вона працює......але ж курсова в мене повністю на паскалі((
Так Луком закинув два сорси на паскалі. береш ті сорси, навчаєшся як малювати різні штуки на паскалі і робиш аналогічні.
  • 0

#5 @_Kat_@

    Профі

  • Користувачі
  • PipPipPipPipPipPipPip
  • 370 повідомлень
  • Стать:Жінка
  • Місто:Кременчук

Відправлено 16.01.2009 – 13:52

огоспаді.......я не побачила <_< буду тренуватись)
  • 0

#6 Lactarius

    Генеральний писар

  • Користувачі
  • PipPipPipPipPipPipPipPipPip
  • 976 повідомлень
  • Стать:Чоловік
  • Місто:Львів

Відправлено 16.01.2009 – 14:14

Оце прикольна заставка буде)))) написав в 10му класі...
program formatC;
uses graph,crt;
var driver,mode:integer;
	y1:real;
	y:word;
	x:byte;
	z:string;
begin
clrscr;
driver:=detect;
initgraph(driver,mode,'');
setviewport(0,0,640,480,true);
setfillstyle(9,1);
floodfill(1,1,brown);
setcolor(white);
setfillstyle(1,white);
bar(180,175,470,275);
setbkcolor(8);
setfillstyle(11,15);
bar(195,230,455,260);
setcolor(red);
settextstyle(1,0,2);
setfillstyle(1,white);
y:=170;
y1:=170;
for x:=1 to 100 do begin
y1:=y1+2.588;
y:=round(y1);
if x mod 10 = 0 then bar(y,231,(y+25),259);
outtextxy(190,185,'Formating disk C');
str(x,z);
z:=z+' % Completed';
outtextxy(190,195,z);
delay(60000);
delay(6000);
setfillstyle(1,white);
bar(190,195,330,203);
end;
clrscr;
setviewport(0,0,640,480,true);
setfillstyle(9,1);
floodfill(1,1,brown);
settextstyle(0,0,2);
outtextxy(195,150,'Format complited');
outtextxy(150,280,'please restart computer');
readln;
end.

Теж рендоматор точок)))

Цитата

uses crt,graph;
var driver,mode,x,y,z,c:integer;
begin
driver:=detect;
initgraph(driver,mode,'');
for X:=1 to 30721 do
for x:=1 to 30720 do
begin
y:=random(16);
z:=random(640);
c:=random(480);
putpixel(z,c,y);
delay(1);
if keypressed then exit;
end;
end.
рожа)
uses crt,graph;
var driver,mode:integer;
  i:byte;
begin
driver:=detect;
initgraph(driver,mode,'');
for i:=1 to 16 do begin
setcolor(white);
setbkcolor(black);
setviewport(0,0,640,580,true);

circle(320,240,200);
setfillstyle(1,i);
floodfill(319,240,white);
arc(320,240,200,340,120);
arc(320,30,240,300,275);
circle(320,240,20);
circle(220,140,15);
circle(220,140,5);
circle(420,140,15);
circle(420,140,5);
delay (50000);
clrscr
end;
end.

То все "привіти" з 10го класу. тому паскаль я вже не памятаю.
  • 0



Кількість користувачів, що читають цю тему: 1

0 користувачів, 1 гостей, 0 анонімних