Forum PCLab.pl: Tryb graficzny C - Forum PCLab.pl

Skocz do zawartości

Dodaj obrazek

Otwarty

Ikona Ostatnio dodane tematy

Ikona Najnowsze pliki

Strona 1 z 1
  • Nie możesz rozpocząć nowego tematu
  • Nie możesz odpowiadać w tym temacie

Tryb graficzny C help Oceń temat: -----

#1 Użytkownik jest niedostępny   raphx Ikona

  • Dyskutant
  • PipPip
  • Grupa: Forumowicze
  • Postów: 54
  • Dołączył: So, 23 Lip 05

Napisany 24 Listopad 2005 - 18:08

czesc
Jak sie włacza tryb graficzny w c++?

Dodaje bibloteke GRAPHICS.H i co dalej....?

mam Borlanda c++ 4.51

#2 Użytkownik jest niedostępny   witmann Ikona

  • Uzależniony od forum
  • PipPipPipPipPip
  • Grupa: Forumowicze
  • Postów: 10666
  • Dołączył: Wed, 28 Lip 04

Napisany 24 Listopad 2005 - 18:10

initgraph(&ster, &tryb, scster);

gdzie &ster to rodzaj sterownika
&tryb - tryb grafiki
scster - scieżka do pliku ze sterownikiem.

Wszystko jest w helpie

Poza tym google...

#3 Użytkownik jest niedostępny   raphx Ikona

  • Dyskutant
  • PipPip
  • Grupa: Forumowicze
  • Postów: 54
  • Dołączył: So, 23 Lip 05

Napisany 24 Listopad 2005 - 18:19

Jak dodaje biblioteke Graphics.h to mi taki komunikat wyskakuje:
"BGI graphics not supported under Windows".
Jak ustawic zeby wszystko było zgodne?

Czyzby w c/c++ tryb graficzny deklarowało sie jak w pascalu?;)

Ten post był edytowany przez raphx dnia: 24 Listopad 2005 - 18:19


#4 Użytkownik jest niedostępny   witmann Ikona

  • Uzależniony od forum
  • PipPipPipPipPip
  • Grupa: Forumowicze
  • Postów: 10666
  • Dołączył: Wed, 28 Lip 04

Napisany 24 Listopad 2005 - 20:18

Wiem, że graphics.h działa w dosowym Borlandzie 3.1. A moduł graphics inicjuje się tak jak w pascalu, bo sobie ludzie z Borlanda tak dla uproszczenia wymyślili. Do C jest mnóstwo modułów graficznych (np. allegro).

#5 Użytkownik jest niedostępny   kostek13_88 Ikona

  • ...
  • PipPipPipPipPip
  • Grupa: Forumowicze
  • Postów: 1456
  • Dołączył: Pt, 27 Cze 03

Napisany 24 Listopad 2005 - 22:50

no właśnie... nigdy nie wiedziałem jak w tym borlandzie 3.1 jakąś grafikę stworzyć.... to może dokładniej opiszesz, bo Szu uczy tylko algorytmów a ten drugi niczego nie uczy???? :P

#6 Użytkownik jest niedostępny   witmann Ikona

  • Uzależniony od forum
  • PipPipPipPipPip
  • Grupa: Forumowicze
  • Postów: 10666
  • Dołączył: Wed, 28 Lip 04

Napisany 24 Listopad 2005 - 22:55

Poszukaj sobie na google pod hasłem "graphics.h" i poczytaj, przeanalizuj przykłądowe programy itp. Ja też dopiero zaczynam - dzisiaj miałem pierwszy wykład z graphics'a ;)

Ten post był edytowany przez witmann dnia: 24 Listopad 2005 - 22:56


#7 Użytkownik jest niedostępny   januzi Ikona

  • ^ patryjota, katolig, bochater
  • Ikona
  • Grupa: Moderatorzy
  • Postów: 33627
  • Dołączył: Nd, 08 Cze 03

Napisany 24 Listopad 2005 - 22:58

dobrze widze "BGI" ? czy to jest tak samo wolne jak w wersji pod Pascalem ?

#8 Użytkownik jest niedostępny   witmann Ikona

  • Uzależniony od forum
  • PipPipPipPipPip
  • Grupa: Forumowicze
  • Postów: 10666
  • Dołączył: Wed, 28 Lip 04

Napisany 24 Listopad 2005 - 23:00

Zobacz postjanuzi, o 24 listopada 2005, 22:58, napisał(a):

dobrze widze "BGI" ? czy to jest tak samo wolne jak w wersji pod Pascalem ?

Niestety. Do tego dochodzi problem z działaniem edytora Borlanda pod WinXP, dlatego programy piszę w Devie i tylko kompiluję w BC. :E

I ten swój projekt też robię jednak na graphiksie a nie na allegro, bo nie mam czasu się uczyć tego drugiego ;)

#9 Użytkownik jest niedostępny   raphx Ikona

  • Dyskutant
  • PipPip
  • Grupa: Forumowicze
  • Postów: 54
  • Dołączył: So, 23 Lip 05

Napisany 25 Listopad 2005 - 09:14

Znacie moze jakas prosta biblioteke graficzna (pod borlanda badz Dev-c++) ktora by działała pod winXpsp2?
Potrzebyje taka zeby były w niej funkcje odpowiadajace paskalowyego:
lineto(x,y);
moveto(x,y);
setcolor(x,y);
outrextXY(); //chyba tak:)
i moze jeszcze jakies style lini i grubosc.

Musze za pomoca niej zrobic wykres.
BGI mi nie działa.

#10 Użytkownik jest niedostępny   januzi Ikona

  • ^ patryjota, katolig, bochater
  • Ikona
  • Grupa: Moderatorzy
  • Postów: 33627
  • Dołączył: Nd, 08 Cze 03

Napisany 25 Listopad 2005 - 13:01

outtextxy();

z graficznych to znam sdl (kurs pl, tutaj jeszcze wuecej przykladow, a tutaj sama biblioteka, tez z przykladami)

#11 Użytkownik jest niedostępny   Luso Ikona

  • Uzależniony od forum
  • PipPipPipPipPip
  • Grupa: Forumowicze
  • Postów: 1032
  • Dołączył: Pn, 27 Cze 05

Napisany 25 Listopad 2005 - 13:06

Zobacz postwitmann, o 24 listopada 2005, 20:18, napisał(a):

... Do C jest mnóstwo modułów graficznych (np. allegro).


:)
Zajrzalem tutaj : http://alleg.sourcef.../readme.pl.html
i zauwazylam, ze biblioteka allegro powinna dzialac pod windowsem z kompilatorami borlanda i M$ :)

Moze to oznaczeg tylko to ze bedzie szybsza od BGI.

Tytaj pojawia sie moje pytanie: Jak wypada jej szybkosc w porownujac z funkcjami winapi 'sluzacymi do rysowania po okienkach' ?

#12 Użytkownik jest niedostępny   witmann Ikona

  • Uzależniony od forum
  • PipPipPipPipPip
  • Grupa: Forumowicze
  • Postów: 10666
  • Dołączył: Wed, 28 Lip 04

Napisany 25 Listopad 2005 - 17:06

Nie wiem ja wypada porównanie allegro z winapi, jednak jest to szybki moduł, z wieloma partiami pisanymi w asemblerze. Jest on o wiele szybszy od borlandowego graphics'a.

A allegro działa w wielu środowiskach. Na stronie jest pełen ich spis.

#13 Użytkownik jest niedostępny   raphx Ikona

  • Dyskutant
  • PipPip
  • Grupa: Forumowicze
  • Postów: 54
  • Dołączył: So, 23 Lip 05

Napisany 25 Listopad 2005 - 17:29

Zainstalowałem w dev-c++ biblioteke Allegro i SDL'a i mi wyskakuje taki komunikat dla obu:

[Linker error] undefined reference to `WinMain@16'
ld returned 1 exit status

O co chodzi? Jak to zrobic zeby działało
Zainstalowałem to przy pomocy Narzedzia/Sprawdz czy sa nowe uaktualnieni...

Ten post był edytowany przez raphx dnia: 25 Listopad 2005 - 17:32


#14 Użytkownik jest niedostępny   witmann Ikona

  • Uzależniony od forum
  • PipPipPipPipPip
  • Grupa: Forumowicze
  • Postów: 10666
  • Dołączył: Wed, 28 Lip 04

Napisany 25 Listopad 2005 - 18:13

Musisz dodać do linkera dwa parametry.

wchodzisz w narzedzia-->opcje kompilatora, zaznaczasz pole przy 'dodaj te polecenia do wiersza polecen konsolidatora' i wpisujesz w polu ponizej parametry: -lalleg -mwindows

To dla allegro. Dla SDL'a nie wiem.

#15 Użytkownik jest niedostępny   januzi Ikona

  • ^ patryjota, katolig, bochater
  • Ikona
  • Grupa: Moderatorzy
  • Postów: 33627
  • Dołączył: Nd, 08 Cze 03

Napisany 25 Listopad 2005 - 18:14

plik -> nowy projekt -> sdl -> ok
i powinien byc utworzony plik, ktory skompiluje sie bez problemu

#16 Użytkownik jest niedostępny   raphx Ikona

  • Dyskutant
  • PipPip
  • Grupa: Forumowicze
  • Postów: 54
  • Dołączył: So, 23 Lip 05

Napisany 26 Listopad 2005 - 10:35

ok dzieki, biblioteki dzialaja juz dobrze.

Mam jeszcze takie male pytania:
Jak zrobic zeby dodatkowo otwieralo mi sie okno textowe?
Czy sa w allegro (sdl) gotowe funkcje do rysoania linii?

Ten post był edytowany przez raphx dnia: 26 Listopad 2005 - 11:07


#17 Użytkownik jest niedostępny   januzi Ikona

  • ^ patryjota, katolig, bochater
  • Ikona
  • Grupa: Moderatorzy
  • Postów: 33627
  • Dołączył: Nd, 08 Cze 03

Napisany 26 Listopad 2005 - 12:35

/* linia w dowolnym kierunku */
function line( $x1, $y1, $x2, $y2, $color )
{
 $deltax = abs($x2 - $x1) + 1;
 $deltay = abs($y2 - $y1) + 1;

 if( $x2 < $x1 ) $tmpx = -1;
 else $tmpx = 1;

 if( $y2 < $y1 ) $tmpy = -1;
 else $tmpy = 1;


 if( $deltay > $deltax )
  {
   $temp = $deltay;
   for( $a = 0; $a < (int)$deltay; $a++ )
	{
		 imagesetpixel($obrazek, $x1, $y1, $color ); // wstawienie piksla
		 $temp = $temp - $deltax;
		 if ( $temp <= 0 )
		  {
		   $x1 = $x1 + $tmpx;
		   $temp = $temp + $deltay;
		  }
		 $y1 = $y1 + $tmpy;
		}
  }
 else
  {
   $temp = $deltay;
   for( $a = 0; $a < (int)$deltax; $a++ )
	{
		imagesetpixel( $obrazek, $x1, $y1, $color ); // wstawienie piksla, putpixel
		$temp = $temp - $deltay;
		 if ( $temp <= 0 )
		  {
		   $y1 = $y1 + $tmpy;
		   $temp = $temp + $deltax;
		  }
		 $x1 = $x1 + $tmpx;
		}
  }
}

przerob z php na c++

w sdl piksel mozesz wstawic poprzez:
((unsigned int*)gScreen->pixels)[screenofs] = kolor;

gdzie jako screenofs podajesz offset wzgledem punktu 0,0 (pamietaj, ze ekran to tak naprawde dluga prosta linia)

#18 Użytkownik jest niedostępny   raphx Ikona

  • Dyskutant
  • PipPip
  • Grupa: Forumowicze
  • Postów: 54
  • Dołączył: So, 23 Lip 05

Napisany 26 Listopad 2005 - 13:54

Dzieki wszystkim za wypowiedzi.
Zrezygnowalem z C++ napisałem program w pascalu :)

#19 Użytkownik jest niedostępny   januzi Ikona

  • ^ patryjota, katolig, bochater
  • Ikona
  • Grupa: Moderatorzy
  • Postów: 33627
  • Dołączył: Nd, 08 Cze 03

Napisany 26 Listopad 2005 - 13:59

pfff

Strona 1 z 1
  • Nie możesz rozpocząć nowego tematu
  • Nie możesz odpowiadać w tym temacie

1 Użytkowników czyta ten temat
0 użytkowników, 1 gości, 0 anonimowych