Megválaszolatlan hozzászólások | Aktív témák Pontos idő: szer. máj. 29, 2024 3:48



Hozzászólás a témához  [ 19 hozzászólás ] 
3d-s kocka létrehozása / kép forgatása Delphi 6-ban 
Szerző Üzenet
arany tag

Csatlakozott: szer. júl. 14, 2004 9:26
Hozzászólások: 391
Tartózkodási hely: TiszaNewCity
Hozzászólás 
Mi bajod van vele ? Mindenkinek megvan a hobbyja.

Van aki köveket gyűjt és van aki szoftveres kockákat :)


szer. aug. 02, 2006 7:26
Profil Privát üzenet küldése
arany tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 474
Hozzászólás 
Te joszagu! Micsoda egy topic :shock:
:P


kedd aug. 01, 2006 17:44
Profil Privát üzenet küldése
ezüst tag

Csatlakozott: kedd júl. 04, 2006 13:40
Hozzászólások: 40
Hozzászólás 
Thanks! :D


kedd aug. 01, 2006 13:37
Profil Privát üzenet küldése
arany tag

Csatlakozott: szer. júl. 14, 2004 9:26
Hozzászólások: 391
Tartózkodási hely: TiszaNewCity
Hozzászólás 
TP-ben Fillpoly.

A helpjében benne van.


kedd aug. 01, 2006 12:13
Profil Privát üzenet küldése
ezüst tag

Csatlakozott: kedd júl. 04, 2006 13:40
Hozzászólások: 40
Hozzászólás 
Néztem fillpolygon eljárást,de nem ismeri fel a tp7... :(

Ilyenkor mit tudok tenni? :roll:


kedd aug. 01, 2006 11:57
Profil Privát üzenet küldése
ezüst tag

Csatlakozott: kedd júl. 04, 2006 13:40
Hozzászólások: 40
Hozzászólás 
Köszi! :)


kedd aug. 01, 2006 11:51
Profil Privát üzenet küldése
arany tag

Csatlakozott: szer. júl. 14, 2004 9:26
Hozzászólások: 391
Tartózkodási hely: TiszaNewCity
Hozzászólás 
ax regiszterbe tölti a 13-as értéket.

MCGA 320x200 256 színű grafikus üzemmód beállításának első sora szokott lenni.

Kód:
procedure setmcga;assembler;
asm  { mcga videomod beallitasa 320x200 256color }
 mov ax,13h
 int 10h
end;

procedure settext;assembler;
asm  { karakteres uzemmod beallitasa 80x25 }
 mov ax,03h
 int 10h
end;


kedd aug. 01, 2006 10:20
Profil Privát üzenet küldése
ezüst tag

Csatlakozott: kedd júl. 04, 2006 13:40
Hozzászólások: 40
Hozzászólás 
Oks,köszi a segítséget! :) Remélem előbb-utóbb belejövök. :D

Amúgy mit jelent az alábbi kifejezés: asm mov ax, $13? Mert van egy fehérzajos progi amit leszedtem netről abban van valami ilyesmi kifejezés. Ez valami memóriába továbbító eljárás vagy mi lehet? :)

Előre is köszi!


kedd aug. 01, 2006 10:12
Profil Privát üzenet küldése
arany tag

Csatlakozott: szer. júl. 14, 2004 9:26
Hozzászólások: 391
Tartózkodási hely: TiszaNewCity
Hozzászólás 
Izé...

A Bar3D-t én nem nevezném 3d-s kocka "ojjektumnak". Ha jól emlékszem azt főleg statisztikai adatok ábrázolásának "szépítésére" használták. Másra nem nagyon jó. Elforgatni meg főleg nem lehet...

Amiket írtam természetesen graph módot igényelnek. TP7-ben is használható bár te Delphi kódot kértél, ezért volt a canvas. A canvas egy "rajzlap" amire rajzolni lehet (ezt jól megmondtam :) ). Pl.: van egy image komponens a form-on akkor form1.image1.canvas.lineto(x,y); Ha az image1 640x480 méretű, akkor a canvas is annyi.

Ha "igazi" kockát akarsz, akkor írd le 3d-ben x,y,z-ben, majd a képlettel képezd le 2d-re. Ha forgatni akarod, a forgatóképleteket engedd rá az x,y,z-re majd az eredményt újra képezd le 2d-re. Persze az eredménnyel sose írd felül az eredeti koordinátákat mert egy idő múlva a torzulástól szétesne a tárgyad. Ha lehet ne TP7-ben csináld hanem Delphiben. Sokkal egyszerűbb. Szerintem... :)

Ha más-más színű "fillezett" oldalakat akarsz, akkor fillpolygont kell használni, bár ehhez már nem árt a láthatóságokat is kiszámolni, hacsak nem akarsz egy Picasso-szerű elvont ábrát :)


kedd aug. 01, 2006 7:27
Profil Privát üzenet küldése
ezüst tag

Csatlakozott: kedd júl. 04, 2006 13:40
Hozzászólások: 40
Hozzászólás 
Megoldódott a probléma! Mostmár műxik a Graph Unit is! :D

És sikerült kockát csinálnom Turbo Pascal 7 alatt,igaz segítséggel. :)

Így néz ki:

program kocka;

uses graph,crt;

var gd,gm: integer;


begin

clrscr;

detectgraph(gd,gm);

initgraph(gd , gm , 'c:\Progra~1\Tp\Bgi');


Bar3D(200, 200, 400, 400, 100 , true);

readln;

closegraph;


end.


Annyiban szeretném kérni a segítségeteket,hogy hogyan tudom azt megcsinálni,hogy a kocka mindegyik oldala más színű legyen? Próbálkoztam textcolor-ral de semmi sem változott. A kocka egyik oldala fehér a többi pedig fekete volt továbbra is...

És Turbo Pascal 7 alatt hogy tudnám ezt a legegyszerűbben elforgatni vagy mozgatni ill. szélességét állítani?

Előre is köszönöm!


hétf. júl. 31, 2006 21:59
Profil Privát üzenet küldése
ezüst tag

Csatlakozott: kedd júl. 04, 2006 13:40
Hozzászólások: 40
Hozzászólás 
Szia Xman! :) Köszi,hogy segítesz! :wink:

Amúgy légyszi magyarázzátok el mit jelent a canvas? És amit most leírtál Xman az Turbo Pascal 7-re is érvényes? Nem kell a forgatáshoz külön unitot még meghívni a crt-n kívül?

Pl. a Turbo Pascal 7-emben az Istennek sem tudok meghívni olyan unitot,hogy pl. graph. :(

Vagy amit leírtál ehhez kéne a graph unit is külön?

Előre is köszi! :)


hétf. júl. 31, 2006 18:46
Profil Privát üzenet küldése
arany tag

Csatlakozott: szer. júl. 14, 2004 9:26
Hozzászólások: 391
Tartózkodási hely: TiszaNewCity
Hozzászólás 
Még annyit:

A gép a szögeket radiánban várja tehát át kell számolni:
radalfa:=alfa*(PI/180);

Ha jól emlékszem a zoff konstans a kamera távolsága vagy valami hasonló. Próbáld 0-val és -256-al. Az egyik az FPS a másik a TPS "nézet". De ez nem biztos :)

Az n kostansra már végképp nem emlékszem de lehet, hogy a kamera torzítását szabályozza (halszem effektus és a többi)... Ez se biztos :)


hétf. júl. 31, 2006 12:54
Profil Privát üzenet küldése
arany tag

Csatlakozott: szer. júl. 14, 2004 9:26
Hozzászólások: 391
Tartózkodási hely: TiszaNewCity
Hozzászólás 
Régen próbálkoztam ilyennel, nem nagyon éri meg a fáradságot...
Van egy könyv, "3D programozás pascalban", abban minden benne van.

3D-s koordináta leképezése 2D-re, mondjuk 640x480-as canvassal:

xoff:=320; canvas közepe
yoff:=240; canvas közepe
zoff:=-256; konstans
n:=256; konstans

"Gyári" képlet:
newx:=(n*x)/(z-zoff)+xoff;
newy:=(n*y)/(z-zoff)+yoff;

4 pontból álló lap láthatósága:

an=y1*(z2-z3)+y2*(z3-z1)+y3*(z1-z2)
bn=z1*(x2-x3)+z2*(x3-x1)+z3*(x1-x2)
cn=x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2)
ap=-x1
bp=-y1
cp=zoff-z1
if an*ap+bn*bp+cn*cp>0 then visible:=true
else visible:=false;

Forgatás:

x tengelyen forgat
fx:=x;
fy:=(y*cos(alfa))-(z*sin(alfa));
fz:=(y*sin(alfa))+(z*cos(alfa));

y tengelyen forgat
fx:=(x*cos(alfa))+(z*sin(alfa));
fy:=y;
fz:=(-x*sin(alfa))+(z*cos(alfa));

z tengelyen forgat
fx:=(x*cos(alfa))-(y*sin(alfa));
fy:=(x*sin(alfa))+(y*cos(alfa));
fz:=z;


hétf. júl. 31, 2006 7:29
Profil Privát üzenet küldése
gyémánt tag

Csatlakozott: pén. jan. 28, 2005 20:39
Hozzászólások: 3683
Tartózkodási hely: Bp
Hozzászólás 
Ez jó...:)) 5hónapja sincs..azalatt egy idegennyelvet meg lehet folyékonyan tanulni ha muszáj.

Ilyenkor a lusta diák 2 dolgot tehet,vagy keres valakit akinek fizet,hogy helyette produkáljon,vagy,ha ennyire nem májer,akkor szépen önmaga keresgél az intrneten valami morzsát,jó eséllyel alapfeladatokra lehet is találni.

Ez a kockás pl jó képernyővédő,biztos akad valamerre ilyen forrás.

Különben egy drótváz kockához nem kell semmiféle directx,a sima canvas rajzolás is elég gyors..oké kicsit villog,de kezdőktől itt mást várnak el (gondolom),nem azt,hogy rögtön full 3D demót kódoljanak,esetleg 200sprite-os videójátékot írjanak egyedi grafikával :D


szomb. júl. 29, 2006 15:16
Profil Privát üzenet küldése
ezüst tag

Csatlakozott: kedd júl. 04, 2006 13:40
Hozzászólások: 40
Hozzászólás 
Köszi a linket! :)

De figyi,még 5 hónapja sincs szinte,hogy Delphiben progizom!!! Kérlek írj le csak egy kocka megtervezéséhez egy forráskódot! Pls!!! :roll:

Üdv. Laci


pén. júl. 28, 2006 21:51
Profil Privát üzenet küldése
a fórum lelke
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 8673
Tartózkodási hely: Ahol fikázni könnyű alkotni nehéz!
Hozzászólás 
Forrás nincs. Írj!
http://www.delphigl.com/


pén. júl. 28, 2006 21:34
Profil Privát üzenet küldése ICQ Honlap
ezüst tag

Csatlakozott: kedd júl. 04, 2006 13:40
Hozzászólások: 40
Hozzászólás 
Köszi! :) De mivel nemrég óta progizom Delphiben nagyon megköszönném ha valamelyikőtök leírná a forráskódot és,hogy hogyan kell opengl-t aktiválni a Delphiben. Előre is köszönöm! :)

Üdv. Laci


pén. júl. 28, 2006 21:06
Profil Privát üzenet küldése
a fórum lelke
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 8673
Tartózkodási hely: Ahol fikázni könnyű alkotni nehéz!
Hozzászólás 
openGL, vagy direct x


pén. júl. 28, 2006 19:35
Profil Privát üzenet küldése ICQ Honlap
ezüst tag

Csatlakozott: kedd júl. 04, 2006 13:40
Hozzászólások: 40
Hozzászólás 3d-s kocka létrehozása / kép forgatása Delphi 6-ban
Annyiban szeretném a segítségeteket kérni,hogy hogyan lehet a legegyszerűbben létrehozni egy 3d-s kockát delphiben ill. egy képet forgatni úgy,hogy folyamatosan forogjon? Előre is köszönöm! :)

Üdv. Laci


pén. júl. 28, 2006 14:33
Profil Privát üzenet küldése
Hozzászólások megjelenítése:  Rendezés  
Hozzászólás a témához   [ 19 hozzászólás ] 

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 3 vendég


Nem nyithatsz témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Magyar fordítás © Magyar phpBB Közösség