Hollosi Information eXchange /HIX/
HIX CODER 1126
Copyright (C) HIX
2001-03-24
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Re: 3D (mind)  13 sor     (cikkei)
2 IRC and builder (mind)  7 sor     (cikkei)
3 autorun (mind)  11 sor     (cikkei)
4 Re: Metafile terkep (mind)  35 sor     (cikkei)
5 Re: Veletlenszam... (mind)  9 sor     (cikkei)
6 Re: negyzet (mind)  14 sor     (cikkei)
7 Re: 3D (mind)  37 sor     (cikkei)
8 Re: statikus adatszerkezet C-ben. (mind)  27 sor     (cikkei)
9 DateTimePicker datum kiiras (mind)  16 sor     (cikkei)
10 Re: Veletlenszam_gen (mind)  25 sor     (cikkei)
11 Re: teglalap (mind)  34 sor     (cikkei)
12 Re: Veletlenszam_gen (mind)  30 sor     (cikkei)
13 Ezredmasodperc alatti idomeres? (mind)  21 sor     (cikkei)
14 Re: Ezredmasodperc alatti idomeres? (mind)  19 sor     (cikkei)
15 rc (mind)  4 sor     (cikkei)
16 Re: Metafile (mind)  35 sor     (cikkei)
17 Re: 3D (mind)  27 sor     (cikkei)
18 Re: Veletlenszam_gen (mind)  33 sor     (cikkei)

+ - Re: 3D (mind) VÁLASZ  Feladó: (cikkei)

A news kliensem szerint  ) azt irta, hogy:
[...]
> egy másik módszer (ebből lehet indulni többféle árnyékoláshoz is)
>
> kiszamolod (és célszerű eltárolni is) az egyes határoló lapok
> normalvektorat... ha a normálvektor és a sík által bezárt szög
> 90 és 270 fok közé esik akkor nem látszik az az oldallap (tehát
> nem kell kirajzolni) (lehet, hogy fordítva van a szögtartomány,
> már régrn csináltam...)

Ez egy targynal OK, de ha tobb van (es netan egymasba ernek), akkor nem
eleg.
 				Bye,NAR
+ - IRC and builder (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok nekem is ilyen IRC komponens problemam van igaz en
socketet mar nyitottam de nem kuldi normalisan a jeleket
mert a server nem tudja bevenni aki tud borland c++ builderben
segiteni az segitsen koszi
bye Superfly

(webes bekuldes, a bekuldo gepe: 195.56.212.216)
+ - autorun (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

Szuksegem lenne egy autorun program forraskodra.
Gyakorlatilag csak anyit kellene csinalnia hogy a
CD behelyezese utan (az autorun.ini meghivja) es
elinditja az alapertelmezett bongeszot (tobbnyire
explorert) es betolti a start.html-t.
Tehat igazabol csak az kellene, hogy tudom elinditani
a browsert. A megoldasra feltetlenul C-ben (vagy C++ban)
lenne szuksegem.
Koszonom!
+ - Re: Metafile terkep (mind) VÁLASZ  Feladó: (cikkei)

> Egy gafikus informacios rendszert fejlesztek delphi-ben.
> A terkepek metafile-okban vannak. Szukseg van arra is,
> hogy mar meglevo terkepet lehessen modositani. Es itt
> kezdodnek a problemak.
>
> Minden modositas utan torzul a terkep. Ugy probalnam
> kikerulni, hogy a metafile-bol kinyerem a rajzolo
> parancsokat, ezeket kulon tarolom. Modositaskor bovitem
> a parancsok listajat, es ujra generalom az egesz terkepet.
>
> Ehhez kene segitseg. Hogyan lehet egy metafile-bol
> kinyerni, es ertelmezni a rekordokat?
>
> Peter

Bocs, hogy nem a kerdesre valaszolok, de en mar lattam egy
sractol, hogy csinalta ezt profin:
- van 1 adatbazis a vektoros foldrajzi adatokkal (varosok korvonala,
utak kezdo es vegpontja, folyok, tavak stb egyenesekbol
osszerakott korvonala)
- van neki egy HPGL modulja Delphihez, ami tudja azt, hogy
beadsz neki vektorokat, szineket stb, es ebbol csinal egy
raszteres kepet tetszoleges felbontassal, feliratokkal.
- ezt egy Delphi progival csinalja, ahol ki-be kapcsolhato minden
terkep elem, tetszoleges a nagyitas, szinte platformfuggetlen
a megoldas.

persze ez egy penzes program, de az otlet ingyér van...

A WMF, EMF metafile fajl formatum leirasokban minden benne
van, ha jol emlekszem, piszok egyszeru rekordokbol all az egesz...

-- 
Józsi

+ - Re: Veletlenszam... (mind) VÁLASZ  Feladó: (cikkei)

Hi!

Javítom magam... elírtam:


> 2. ha lotto5[x]==true, akkor goto 1.
> 3. lotto5[x]=true; és számot eltesszük, mint kihúzott szám...

bocsesz...
+ - Re: negyzet (mind) VÁLASZ  Feladó: (cikkei)

CODER #1123, :
>  van egy negyzet (s,d oldalakkal), es egy kisebb negyzet(a,b

talan teglalap, nem?

>  oldalak). A feladat az, hogy meg kell keresni, hany darab kis
>  negyzet fer bele, hogyan fer bele a legtobb.

tipp: LNKO(a,b) -- legnagyobb kozos oszto.

Udv,
		Hunter				-[HE 1.15beta6]-
"Nem felsz, hogy tonkremegy az autod ebben a benzingozben ?"
MMI MLI
+ - Re: 3D (mind) VÁLASZ  Feladó: (cikkei)

hi

Szerintem hasznalj Z-buffert. A lenyege, hogy a van egy olyan buffered, ami
ugyanolyan felbontasu mint a kepernyo. Amikor rajzolsz egy polygont, akkor
minden pontjara szamolsz egy Z erteket is. Ha ez a Z ertek kisebb mint a
Zbufferben levo, akkor kirajzolod a pixelt, es eltarolod a bufferben az uj Z
erteket. Az aktualis Z erteket interpolacioval kapod meg, csinalhatod linearis
interpolacioval, de matematikailag ugy korrekt, ha nem z-t hanem 1/z-t
interpolalsz. Igy hasznalhatsz 1/z buffert is (= W-buffer), aminel eppen akkor
kell kirajzolni a pixelt ha nagyobb a kapott 1/z mint a bufferben levo.

Leteznek meg egyeb megoldasok, pl. BSP-fa (Binary Space Partition), amiben ugy
szetvagdosod a polygonokat, hogy egy sima Z-rendezessel rendereles eseten is
korrekt legyen a kep. A lenyege, hogy meghatarozod az adott polygon sikjat, es
megnezed, hogy a tobbit vagja-e ez a sik. Ha igen, akkor szetvagod a polygont a
metszes egyenese menten. Harmadik megoldas lehet az S-buffer (sokfelekeppen
nevezik, stencil/span buffer), amiben a polygonokat scanlineonkent hasonlitod
ossze, es az allasuk szerint meghatarozhato az esetleges atfedes elkerulese.

A Z-buffer (W-buffer) mostanaban a legelterjedtebb, ezt hasznaljak a
3dgyorsito k is (opengl alatt csak az van, d3d-vel lehet mast is
hasznalni), nem tulsagosan maceras megirni, es viszonylag gyors is lehet.
Ekkor a polygonokat erdemes Z szerint novekvo sorrendbe rendezni, igy
kevesebb pixelt/texelt kell rajzolni ja, es minden kep elejen toltsd fel a
zbuffert vegtelen (nagy), vagy w buffert 0 ertekkel, es figyelj, hogy a
polygonok ne keruljenek a kamera sikja moge.

amit  irt, azt backface cullingnak nevezik, es tenyleg arra jo,
hogy a nem lathato polykat kiszurd, ezt csak akkor lehet hasznalni, ha nem mesz
bele egy objektum belsejebe, vagy ha nincsenek atlatszo polyk.

remelem segitettem
bye
---
Ekler Márton (mrc!/Inquisition)
mailto:
http://scenergy.dfmk.hu/inquisition
+ - Re: statikus adatszerkezet C-ben. (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok !

Koszi a tippeket a statikus adatszerkezettel kapcsolatban, de meg
mindig nem az igazi:

> static const int szam[]={1,2,3,4,5,6,7,8,9,10,11};
> static const int* szamok[]={&(szam[0]),&(szam[3]),&(szam[5])};

Ez igy szep es jo, de a szamok tomb inicializalasakor kezzel
kell kiszamitani az indexeket. (0, 3, 5)
Ez nem tunik hasznalhato megoldasnak ha sok szamot tarolok.
Az lenne fontos, hogy ezt a fordito maga tegye meg, mint
ahogyan a karaktersorozatos elso valtozatban teljesult.

> static int n1[] = { 1, 2, 3 };
> static int n2[] = { 4, 5 };
> static int n3[] = { 6, 7, 8, 9, 10 };
> static int *szamok[] = { n1, n2, n3 };

Ez mar sokkal jobb az elobbi szempontbol, csak arra
kellene ravenni a forditot hogy az n1, n2, n3 tomboket
helykihagyas nelkul egymas utan tarolja.

Ehhez tudtok valamilyen direktivat ajanlani ?
(GCC es LCC forditokhoz erdekel.)

- Tamas -
+ - DateTimePicker datum kiiras (mind) VÁLASZ  Feladó: (cikkei)

Hi!

A DateTimePicker adatbazisos verziojaval kuzdok. Azt kellene megoldanom,
hogy ha a kapcsolodo mezo ures, akkor ne irjon ki se datumot a komponens, se
idot, ha arra van beallitva. Nem talalom hol iratja ki a DateTimebol a
erteket. Itt mar eleg melyen WinAPIs a dolog.

Ha valaki fel tudna ezzel kapcsolatban homalyositani, elore is kosz!
Szoval a kerdes, hol adja meg es hogyan, hogy milyen stringet irjon a
kepernyore?

Ezzel kapcsolatban meg 1 kerdes: a CheckBox mire szolgal a komponensben (A
ShowCheckBox propertyvel lehet bekapcs.) azon kivul, hogy ha a DateTime=0,
akkor a bekapcsolt allapota mellett nem ad kivetelt.

SieGe
+ - Re: Veletlenszam_gen (mind) VÁLASZ  Feladó: (cikkei)

En igy csinalnam:

var
  lotto90: array[0..89];
  lotto5: array[1..5];
  i,s,n: integer;
;

Tehat a kihuzott helyere beteszem az utolsot, es minden huzas
utan egyel kisebb tartomanybol generalom a veletlen szamot. Ami
nem maga a szam, csak az indexe.
Ezzel a modszerrel hosszabb (akar teljes) szamsorok is generalhatok,
es egyszer sincs ismetlodes. Valamint linearis lefutasu, gyors.

Peter
+ - Re: teglalap (mind) VÁLASZ  Feladó: (cikkei)

On 22 Mar 2001, at 22:43,  wrote:

> >En a 8 kiralyno problemahoz latom hasonlonak.
> hol talalok errol valami bovebbet, esetleg forraskodot

Nem hasonlit ra elegge. A 8 kiralyno problema a backtrack
algoritmusra szokott pelda lenni. A backtrack lenyege, hogy ha a
probalkozas kozben viszonylag gyorsan kiderul, hogy az eppen
kiprobalt ut nem jarhato, akkor rogton visszabb lehet lepni egyet,
igy a lehetseges probalkozasok szama drsztikusan lecsokken. Itt
viszont csak az osszes teglalap lerakasa utan derul ki, hogy hany
darabot lehetett lerakni. (Illetve kicsit korabban is kiderulhet,
hogy a fennmarado teruletre elvileg rakhato teglalapok szamat
figyelembe veve sem erhetunk el jobb eredmenyt, mint ami mar korabban
kijott, vagyis lehet backtrack-et is hasznalni, de az a gyanum, hogy
ez csak kisse csokkenti le a kiprobalando lehetosegek szamat.)

Talan a genetikai algoritmusok kornyeken lehetne probalkoznod. Ilyet
szoktak alkalmazni olyan problemakra, amikor nincs ismert (hatekony)
keresesi strategia, es az osszes lehetseges eset kiprobalasa
lehetetlenul sok szamitast igenyelne. Keress ra a "genetic
algorithms" szavakra egy keresovel...

Egyebkent ez a problema sokszor felmerult mar, pl. uvegezoknel
(nagymeretu tablauvegbol hogyan erdemes sok, esetleg kulonbozo meretu
teglalapot kivagni), vagy mindenfele bőrfeldolgozo szakmakban
(kesztyu, cipo, stb. kivagasa nagy darab bőrből). Sajnos nem tudok
megoldasrol, de biztos csinalt mar valaki ilyesmit...

István


--  Istvan Marosi  --  http://www.sch.bme.hu/~marosi  --
--  Recosoft Ltd.  --  mailto:  --
+ - Re: Veletlenszam_gen (mind) VÁLASZ  Feladó: (cikkei)

On 22 Mar 2001, at 11:23,  wrote:

> > Ez nem lottohuzas!
> > Lotto eseten a kihuzott szamot kiemelik a tobbi kozul es
> > kovetkezoleg mar eggyel kevesebbol huznak.
>
> pedig az...
>
 ....
> 0. ciklus amíg kell kihúzni számot
> 1. generálsz egy véletlenszámot... (x) (x>0 és x<=90)
> 2. ha lotto[5]==true, akkor goto 1.
> 3. lotto5[x]=true; és számot eltesszük, mint kihúzott szám...
> 4. ciklus vége
>
> biztosan nem lesz benne ismétlődés...

Gyakorlatilag ugyanazt a problemat oldja meg, ennyiben tenyleg
lottohuzas, viszont elvileg nem korrekt a veletlensorozatbol valo
kihagyas miatt. (A kihagyas miatt modosul a veletlengenerator
eloszlasa.) Ha meg mar jott ide harom napja rendes megoldas is (Coder
#1123, ), ami matematikailag is tenyleg korrekt,
akkor inkabb ne eroltesd ezt... Attol, hogy biztos nincs benne
ismetles, ez meg nem lesz jo.

> nyilván többféle megoldás létezik, kevés számra ez elég gyors...

Szilagyi Jozsef megoldasa ugyanolyan gyors, sot, meg gyorsabb is.

István
+ - Ezredmasodperc alatti idomeres? (mind) VÁLASZ  Feladó: (cikkei)

On 21 Mar 2001, at 1703, Szakacs Tamas  wrote:

> Elvadult vagyam onnan nyert olajat a tuzre, hogy RedHat Linux 7.0
> alatt a ping a korabbi verziok msec-a helyett usec-ben irja ki a
> pattogtatas idejet, es igy felkeltette kivancsisagom, milyen alapon
> jelent ki ms-nal pontosabb idoket? Linearis interpolacioval? A kernel
> tud valami trukkot? Es foleg: Win alatt lehetseges ugyanez?

Nem tudom, hogy tenyleg pontos-e ez a szam, illetve mennyire pontos,
amit a linux csinal, de elvileg megoldhato, ha a processzor legalabb
pentium (kiveve a nagyon koraiakat). Lehet, hogy a linux is ezt
hasznalja, nem neztem utana: Ugyanis van jo ideje RDTSC utasitas
(Read Time Stamp Counter), ami az eltelt orejelciklusokat szamolja,
vagyis elvileg 1GHz-es procinal 1 nanosec pontossagu. Viszont ezt az
utasitast csak a kernel adhatja ki, szoval ha az oprendszer nem ad
hozza tamogatast, akkor ciki. Viszont nagyon konnyen lehet, hogy
talalsz valahol (vagy tudsz irni) olyan win-es device drivert, ami
kernel modban leolvassa ezt a szamlalot, es visszaadja az adatot a
user programnak...

István
+ - Re: Ezredmasodperc alatti idomeres? (mind) VÁLASZ  Feladó: (cikkei)

Ma irtam az RDTSC utasitasrol. Azota megneztem, tenyleg ezt hasznalja
a linux kernel. Azt is megneztem, hogy mi van a windows-zal: a
mostani windows-ok ugy tunik, engedelyezik az rdtsc hasznalatat.
(Amikor nagyon regen probaltam, akkor nem lehetett, csak pucer dos-
ban hasznalni.) Van ugyanis egy bit a proci belsejeben, amitol fugg,
hogy user progi kiadhatja-e ezt az utasitast, es ugy latszik, az
ujabb win-ek engedelyezik ezt.

Ha nagyon rovid programreszlet (nehany utasitas) vegrehajtasi idejet
akarod vele megmerni, akkor sok mindenre kell ugyelni a modern
prociknal (out of order execution stb.), ehhez az intelnek van egy
doksija
(http://cedar.intel.com/software/idap/media/pdf/rdtscpm1.pdf), olvasd
el.

István

--  Istvan Marosi  --  http://www.sch.bme.hu/~marosi  --
--  Recosoft Ltd.  --  mailto:  --
+ - rc (mind) VÁLASZ  Feladó: (cikkei)

Udv!

Ahhoz szeretnek segitseget kerni, hogy az eroforras allomanyba (.rc)
felvett kepeket, hogyan lehet kiolvasni C++ban?
+ - Re: Metafile (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

> 
> Ehhez kene segitseg. Hogyan lehet egy metafile-bol
> kinyerni, es ertelmezni a rekordokat?

A rekordok kinyeresehez talan legjobb, ha az EnumMetaFile
Win API hivassal kered le sorban a rekordokat (lasd help).
Az egyes rekordok ertelmezesehez a METARECORD struktura
elemeit kellene feldolgozni.
Reszlet a helpbol:

typedef struct tagMETARECORD {  /* mr */
    DWORD rdSize;
    UINT  rdFunction;
    UINT  rdParm[1];
} METARECORD;

The METARECORD structure contains a metafile record.

Member Description

rdSize Specifies the size, in words, of the record.
rdFunction Specifies the function number.
rdParm Specifies an array of words containing the function
parameters, in the reverse order in which they are passed to
the function.


Sajnos reszletesebb infot a sima helpben nem talaltam, de
gondolom valahol fellelheto.

Udv.:
Joco

+ - Re: 3D (mind) VÁLASZ  Feladó: (cikkei)

Haliho!

Elhangzott sok jobbnal-jobb modszer a takarasra, csak valahogy egyik sem az
igazi. Na, nezzuk mi volt:
1. sokan leirtak, hogy ha a poligon normalja hatrafele mutat, akkor azt nem
kell kirajzolni. Remek. Ezt hivjak idegenul Backface Cullingnak, de ennek a
takarashoz vajmi keves koze van, mivel ezeket az oldalakat nagy valoszinuseg
szerint ugyis eltakarja egy felenk nezo poligon. (kiveve ha nem, de az most
mindegy) Ez inkabb csak arra jo, hogy kevesebbet kell kirajzolni. (de arra
nagyon.)
2. felmerult, hogy a poligonokat le kellene rendezni Z-szerint. Na jo, de
melyik Z -szerint? Vehetunk kozeppont Z-jet, ami mar kozelit, de sok esetben
ez sem jo, mert pl ha van egy nagy hosszu poligonod, es ahhoz kozel egy
pici, akkor ez a modszer kihozhatja az nagyot tavolabbinak, mivel a
kozeppontja messzire csuszik.
3. Valaki emlitette, hogy az adott keppontba meg kell nezni, mely
poligonoknak van pontja, aztan mindet leellenorizni Z-re. Jujj... Bar vegul
is. Ezt hivjak Z-buffernek. Csak akkor nem igy mukodik. Szoval veszel egy
X*Y-os tombot, az elejen beallitod minden pontjat vegtelenre (khm..) aztan
amikor ki kellene rajzolni egy pontot akkor megnezed, hogy a Z-koordinataja
kisebb-e, mint a tomb aktualis eleme. Ha igen, akkor kirajzolod, es a tombbe
beirod a Z-t. Ha meg nem kisebb, akkor mogotte van, tehat nem kell
kirajzolni.
No, valami ilyesmi. A harmat lehet egyutt alkalmazni, meg meg vannak mas
technikak is, de gondolatebresztonek talan ennyi eleg is.

FooLman/the.hidden.face
+ - Re: Veletlenszam_gen (mind) VÁLASZ  Feladó: (cikkei)

"> Ez nem lottohuzas!
> Lotto eseten a kihuzott szamot kiemelik a tobbi kozul es kovetkezoleg
mar
> eggyel kevesebbol huznak.

pedig az...

van egy boolean vektorod, alapesetben false értékekkel.

int lotto5[90];

0. ciklus amíg kell kihúzni számot
1. generálsz egy véletlenszámot... (x) (x>0 és x<=90)
2. ha lotto[5]==true, akkor goto 1.
3. lotto5[x]=true; és számot eltesszük, mint kihúzott szám...
4. ciklus vége

biztosan nem lesz benne ismétlõdés...

nyilván többféle megoldás létezik, kevés számra ez elég gyors..."

A kritikusod igaza van, ugyanis ez tényleg nem lottóhúzás. De nem azért
hibás az algoritmusod, mert nem generál 5 különböző véletlen számot (ez
OK), hanem az, hogy egy szám belekerül vagy nem kerül bele az öt
kiválasztott számba valószínűsége függ attól, hogy az adott számot
hányadikra húzod ki!  Ez matematikailag hibás, mert a lottóhúzás
gyakorlatilag egy 90 elemből 5 elemű részhalmaz kiválasztását jelenti,
az 5 elemű részhalmazban az egyes elemek bekerülési valószínűségének
egyenlőnek kell lennie.
CODER1123-ban leírtam egy matematikailag is korrekt algoritmust, ami
ráadásul 5 lépésben mindig véget ér.
Üdvözlettel
      József

AGYKONTROLL ALLAT AUTO AZSIA BUDAPEST CODER DOSZ FELVIDEK FILM FILOZOFIA FORUM GURU HANG HIPHOP HIRDETES HIRMONDO HIXDVD HUDOM HUNGARY JATEK KEP KONYHA KONYV KORNYESZ KUKKER KULTURA LINUX MAGELLAN MAHAL MOBIL MOKA MOZAIK NARANCS NARANCS1 NY NYELV OTTHON OTTHONKA PARA RANDI REJTVENY SCM SPORT SZABAD SZALON TANC TIPP TUDOMANY UK UTAZAS UTLEVEL VITA WEBMESTER WINDOWS