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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2012, 16:31   #1
bika
Новичок
Джуниор
 
Регистрация: 02.05.2012
Сообщений: 1
По умолчанию графика спутник земли

люди помогите пожалуйста переписать программу на winapi с паскаля ,вообще надо переделать на с++ ,но мне сказали что на с++ нет графики


вот программа
program meny;
uses crt, graph, dos;

var
r1:longint;{radius v kvadrat budem vozvodit}
d,n,i1,xc,yc,x,y,r:integer;
h,b,h1:real;
a1:array[1..21] of real;{massiv diametrov parallelei} {konec}
gd, gm, i: integer;
procedure spu (a:integer); {procedura risovaniya sputnika}
const GRAD = 0.0174532; {constanta perescheta ugla: radian-gradus}
var zx, zy: integer;
begin
zx:=Round(320+r*sin(a*GRAD)); {schitaem koordinatu X}
zy:=Round(240-r*cos(a*GRAD)); {schitaem koordinatu Y}
delay(5000); {zhdem}
setfillstyle(1,14);
fillellipse(zx, zy, 10,10); {zakrashivaem staruyu prorisovku}
delay(5000); {zhdem}
setcolor(0);
setfillstyle(0,0);
fillellipse(zx, zy, 10,10); {zakrashivaem staruyu prorisovku}
end;
begin
writeln ( ' ', ' vvedite radius zemli ot 90-160');
readln (r1);
writeln (' vvedite radius sputnika ot 160-210 ' );
readln(r) ;
gd:=DETECT;
i:=1;
initgraph(gd, gm, ''); {initsializiruem grafiku
{nachalo}
d:=2*r1;{diametr}
n:=15;{kolichestvo parallelei}
h:=d/(n+2);{rasstoyanie mezhdu parallelami}
a1[n div 2+1]:=d;{ekvator}
for i1:=n div 2 downto 1 do {po ubivaniyu k polusam}
begin a1[i1]:=2*sqrt(r1*r1-sqr((n div 2-i1+1)*h));{diametri parallelei}
a1[n-i1+1]:=2*sqrt(r1*r1-sqr((n div 2-i1+1)*h));
end; xc:=getmaxX div 2;{centr}
yc:=(getmaxY-d) div 2;
setfillstyle(1,1);
fillellipse (xc,yc+round((n div 2+1)*h+h/2),r1,r1);
setcolor(0);
for i1:=1 to n do {risuem paralleli}
ellipse(xc,yc+round((2*i1-1)*(h/2)+h),0,360,round(a1[i1]/2),round(h));
h1:=r1/(n-1);{polovina rasstoyaniy mezhdu meredianami}
for i1:=1 to n div 2 do{v 2 raza menshe,poskolku i sprava i sleva ot seredini}
begin b:=2*i1*h1;{malaya os ellipsa}
SETCOLOR(0);
ellipse(xc,yc+round((n div 2+1)*h+h/2),0,360,round(b),r1); {risuem}
end;
line(xc,yc,xc,yc+d);{sredniimeridia n}
readln;
{konec}
setfillstyle(1,7); { nebo nachalo}
fillellipse(500,50,15,13);
for i:=1 to 600 do
begin x:= random(640);
y:=random(480);
putpixel(x,y,7);
end; { nebo konec}
while not keypressed do
begin {cikl poka ne nazhata klavisha}
if i=360 then i:=1; {esli ugol 360 gradusov, to snova 1 gradus}
spu(i); {risuem sputnik po uhlu i}
i:=i+1; {plusuem ugol}


end;
closegraph; {zakryvaem grafiku}
end.
bika вне форума Ответить с цитированием
Старый 02.05.2012, 20:53   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

WinAPI один и тот же и не зависит от выбранного языка программирования.
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
и опять спутник не взлетел Juffin Свободное общение 31 24.12.2011 11:56
Симулятор Земли VlS81 Свободное общение 30 09.11.2011 13:04
По силам ли студенту сбить спутник? Levsha100 Свободное общение 53 05.11.2010 16:11
как найти человека через спутник по номеру мобильного телефона Илюха Свободное общение 15 22.09.2009 13:10