1. |
Konkav, lapokbol allo test felbontas konvex testekre (mind) |
26 sor |
(cikkei) |
2. |
Re: Delphi6: sleep(); helyett (mind) |
34 sor |
(cikkei) |
3. |
WinXP/win2000 UDP kommunikacio... (mind) |
29 sor |
(cikkei) |
|
+ - | Konkav, lapokbol allo test felbontas konvex testekre (mind) |
VÁLASZ |
Feladó: (cikkei)
|
> + - Re: Konkav, lapokbol allo test felbontas konvex testekr VÁLASZ
> Feladó: zhnujm_uh.liameerf
>
> Szerintem úgy lehet megállapítani egy testről,
> hogy konvex vagy konkáv, hogy felvesszük a vizsgálatban
> szereplő síkot, valamint azok mellett két oldalon
> még kettőt nagyon kis távolságra egymás mellett.
> Ha a két szélsőben metszet jön létre, akkor a test
> konkáv, egyébként konvex.
Ezzel az a baj, hogy a "kis" tavolsag nem megfoghato: mindig lehet mutatni
olyan testet, amire ez az algoritmus tevedne. Elmondom a legnaivabb
megoldast. A testunk ugye poligon lapokbol all. Minden csucspontra vesszuk
a tobbi csucsponton atmeno egyeneseket, es megnezzuk, hogy az egyenes
metsz-e lapokat. Ha nem metsz, akkor konvex. Ennyi, csak eleg koltseges.
Udv!
--
tocsa
---
| email: |
| homepage: http://www.inf.bme.hu/~tocsa |
---
|
+ - | Re: Delphi6: sleep(); helyett (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Hali!
> Hasznalj timert a sleep helyett. Akkor kozben rendesen muxik a progi, es
> x millisec utan (amikor a timer lejar) vegrehajthatod, amit kesleltetni
> akartal. (Az OnTimer eventhez kell hozzarendelni az eljarast.)
Van ettol egyszerubb modszer is:
procedure Sleep(millisec:dword);
var i:integer;
function ElapsedMillisecFrom(StartMillisec: DWORD): DWORD;
const Magic = $80000000;
var
CurMS : DWORD;
begin
CurMS := GetTickCount;
If CurMS >= StartMillisec
then Result := CurMS - StartMillisec
else Result := (CurMS + Magic) - (StartMillisec - Magic);
end;
;
Ez a plusz belso fuggveny azert kell, emrt 49,7 nap folyamatos uzem utan
(amiota naphosszat mennek a szerverek es gyakorlatban megy a hibernalas,
azota ez egyaltalan nem valoszinutlen), a tickcount, azaz a rendszerinditas
ota eltelt ezredmasodpercek szama eleri a 2^32-t, azaz a 4 milliard 294
millio valamennyit, es atfordul, azaz 0-tol kezdi ujra. Meg ezt is
kikuszobolheted! :)))))
Üveges Márk Péter
"To tell a lie is a weapon only for the weak."
|
+ - | WinXP/win2000 UDP kommunikacio... (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Szevasztok!
Keszult egy C program, ami UDP protokollt hasznal, az ezen erkezo
keresekre valaszolgat. A program jol megy a haverom (aki irta) XP
gepen, nalunk is megy a win2000-es gepen, de a nalunk levo XP-n nem.
Trace-ekkel tele a program, ebbol ugy tunik, hogy nem erkezik be
eygetlen pakli sem.
Ilyesmi nagyjabol az init:
WSAStartup()
ev=WSACreateEvent()
s=socket(FP_INET, SOCK_DGRAM, IPPROTO_UDP)
if(setsockopt(s, SOL_SOCKET, SO_RCVBUF, (void*)&RB, sizeof(RB)) ||
setsockopt(s, SOL_SOCKET, SO_SNDBUF, (void*)&SB, sizeof(SB)) ||
setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (void*)&yes, sizeof(yes)) ||
WSAEventSelect(s, ev, FD_READ|FD_WRITE) ||
bind(s, (SOCKADDR*)&Address, sizeof(Address)) < 0 )
error;
Kizarolag timout esemenyek jonnek be, hiaba kuldunk masik geprol
erre az XP gepre... Es ugyanez a win2000-en meg jol megy :-(
Valami XP-s beallitas okozhat ilyet esetleg? Semmi otletunk...
Ha valakinek lenne otlete, az nagy segitseg volna.
koszi
Zotyo
|
|