English | Magyar
JS ki | CSS ki | Ékezetek ki | HiContrast
Lapozó:  (0 - 1424) 
<== | ==>
Ugrás a végére | Összes megjelenítése | Utolsó oldal
OpenOpera patches | Opera-SSL patches | Opera 12.15 source (Git repository) | Opera 12.15 source (Torrent) | Opera internal pages | Otter Browser Linux x64 - Qt5.15.2/QtWebKit5.602.1 (2024.04.27. 20:05)
OS for MC680x0 | OS for PPC | OS for Sparc64 | besztofbégéaefcé | CSÉNDZSLOG | WebToolz | DDG Shit Filter | Google Shit Filter | Progz | Fast CSS Box | Browser | OS | Agent | Statisztika | BBCode
Monospace font-family: Courier New | Browser default monospace
Email értesítő / Email notification ===> 
Keresés
Σ: 1 post

TCH  (statz) Főfasz
#1, Főfasz (10443)
2117 | #4f27 | ^ | Idézet | Wed, 26 Feb 2020 21:56:39 +01
94.21.*.* Linux x86 Opera Classic Hungary *.pool.digikabel.hu
Így lehet egy 3D-s pontot leképezni 2D-re (Related: https://en.wikipedia.org/wiki/3D_projection, http://eab.abime.net/showthread.php?t=101151):
typedef struct
{
	float x, y, z, thx, thy, thz;
} Camera;

typedef struct
{
	float x, y;
	int beyond;
} Point2D;

typedef struct
{
	float x, y, z;
} Point3D;

void TransformPoint3DToPoint2D(Point3D *p3D, Camera *C, Point2D *p2D)
{
	float x, y, z, cx, cy, cz, sx, sy, sz, dx, dy, dz, ex, ey, ez, a;

	if ((p3D == NULL) || (C == NULL) || (p2D == NULL))
	{
		return;
	}

	a = 90.0;
	x = p3D->x - c->x;
	y = p3D->y - c->y;
	z = p3D->z - c->z;
	ex = 0.0;
	ey = 0.0;
	ez = cos(a / 2) / sin(a / 2);
	cx = cos(C->thx);
	cy = cos(C->thy);
	cz = cos(C->thz);
	sx = sin(C->thx);
	sy = sin(C->thy);
	sz = sin(C->thz);

	dx = cy * (sz * y + cz * x) - sy * z;
	dy = sx * (cy * z + sy * (sz * y + cz * x)) + cx * (cz * y - sz * x);
	dz = cx * (cy * z + sy * (sz * y + cz * x)) - sx * (cz * y - sz * x);

	p2D->x = ((ez / dz) * dx) + ex;
	p2D->y = ((ez / dz) * dy) + ey;
	p2D->beyond = dz < 0.0;
}
Illetve így kéne, de amint lehet látni, az ex, ey és ez változók nincsenek feltöltve. Elméletileg ez lenne a célfelület a kamerához képest számítva, ami elméletileg ugye konstans, de fingom nincs, minek kéne lennie... Még túrom a netet. (Ja, amúgy ez még nincs optimalizálva sem.)

Sz*rk: Az ex, ey esetünkben nulla, az ez pedig egy pozitív, de kicsi érték, még próbálgatom a dolgot.
Sz*rk #2: Úgy néz ki az tkp. a távolság a kamera és a leképzendő pont között, de nem merek rá megesküdni. Matekból segg vagyok.
Sz*rk #3: Tényleg az. Csak kell hozzá a "látószög". Ezért rühellem a matekot. Feloldod valamelyik ismeretlent egy egyenlettel, amiben van egy újabb ismeretlen... Mondjuk ezt be lehet lőni konstansra is; hát próba cseszernye. Ápdét: 90° a helyes megfejtés. Azaz az ez értéke tkp. 1.0.


English | Magyar
JS ki | CSS ki | Ékezetek ki | HiContrast
Lapozó:  (0 - 1424) 
<== | ==>
Ugrás a végére | Összes megjelenítése | Utolsó oldal
OpenOpera patches | Opera-SSL patches | Opera 12.15 source (Git repository) | Opera 12.15 source (Torrent) | Opera internal pages | Otter Browser Linux x64 - Qt5.15.2/QtWebKit5.602.1 (2024.04.27. 20:05)
OS for MC680x0 | OS for PPC | OS for Sparc64 | besztofbégéaefcé | CSÉNDZSLOG | WebToolz | DDG Shit Filter | Google Shit Filter | Progz | Fast CSS Box | Browser | OS | Agent | Statisztika | BBCode
Monospace font-family: Courier New | Browser default monospace
Email értesítő / Email notification ===> 
Keresés

Név: (max 255 byte)

Email: (max 255 byte) Nem kötelező!

Üzenet: (max 65536 kar.) 65536-0=65536




crap_vkn v4.34.0 by TCH
Thx to saxus for the escaped string decoder function (PHP), the realIP function (PHP) & the SQL handle layer (PHP), to thookerov for the int_divide function (PHP), to Jeff Anderson for the getSelText function (JS), to Alex King for the insertAtCursor function (JS), Flood3r for the new CSS styles, Pety for the spamprotection idea and some design and comfort ideas, MaxMind for the IP2Country database, famfamfam for the flags of countries and an unknown PHP programmer for the removeAccents function.



Kecskebaszók ide!