-
Gesamte Inhalte
4909 -
Benutzer seit
-
Letzter Besuch
-
Tagessiege
6
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von Guybrush Threepwood
-
Das kannst du über einen Epsilonvergleich machen. Hier hab ich dazu mal ein Beispiel gepostet.
-
Versuch mal mit long double zu rechnen, das ist AFAIK der genauste simple Datentyp. Wenn das nicht reicht musst entweder eine Bibliothek suchen die beliebig lange Flieskommazahlen handeln kann oder den Rundungsfehler in Kauf nehmen und dein Programm entsprechend anpassen.
-
Das ist ein normaler Rundungsfehler. Guck mal hier
-
Diskussionsrunde für alle Members
Guybrush Threepwood antwortete auf beltoras's Thema in Ausbildung im IT-Bereich
Also ich seh da nirgendwo die voraussetzung eines abgeschlossenem Studiums. Nur einmal steht es als Plus da, aber nirgendwo als Voraussetzung. http://blizzard.com/jobopp/console-senior-engine-programmer.shtml http://blizzard.com/jobopp/senior-graphics-programmer.shtml http://blizzard.com/jobopp/console-senior-game-designer.shtml http://blizzard.com/jobopp/tools-software-engineer.shtml Es steht allerdings genau da welches Können der Bewerber mitbringen soll und das ist IMHO auch das einzige was zählt, nicht woher er die Fähigkeiten hat. -
Diskussionsrunde für alle Members
Guybrush Threepwood antwortete auf beltoras's Thema in Ausbildung im IT-Bereich
Ich kann perdi nur zustimmen, man hat bei beiden Richtungen die Möglichkeit sich auf das vorzubereiten was man gerne machen möchte. Ich wage einfach mal zu behaupten das ein durchschnittlicher Informatikstudent ein besseres mathematisches Wissen hat als ein FI Azubi. Der Azubi aber dafür je nach Richtung sich besser in der Programmierung bzw. der Technik des PCs auskennt. -
Berechnung von Punkten in einem Koordinatensystem
Guybrush Threepwood antwortete auf Guybrush Threepwood's Thema in Algorithmik
Cool vielen Dank!! :uli -
Berechnung von Punkten in einem Koordinatensystem
Guybrush Threepwood antwortete auf Guybrush Threepwood's Thema in Algorithmik
Cool Aber dann hätte ich noch eine Frage zu FLOAT theta = (2*D3DX_PI*i)/(50-1); [/PHP] 2*D3DX_PI*i wäre ja der Umfang eines Kreises mit dem Radius i. Aber der Radius des Zylinders bleibt doch immer gleich und warum brauche ich überhaupt den Umfang/(50-1)? ***EDIT*** Moment ich glaub ich habs: Dadurch erhalte ich die Größe des Winkels Alpha bei 50 Punkten (wenn man bei 0 anfängt) mit dem gleichem Abstand? -
Berechnung von Punkten in einem Koordinatensystem
Guybrush Threepwood antwortete auf Guybrush Threepwood's Thema in Algorithmik
Achso, ich glaube jetzt hats *klick* gemacht, der ganze Zylinder besteht also nur aus 2 Kreisen die jeweils 50 Punkte haben? Wenn das so stimmt dann läuft das doch nach dem Prinzip welches hier unter Kapitel 1.2 dargestellt wird ab. Bekomme ich dadurch das ich für die Berechnung des Sinus und des Kosinus die selben Werte benutze die gegenüberliegenden Punkte auf dem Kreis? -
Berechnung von Punkten in einem Koordinatensystem
Guybrush Threepwood antwortete auf Guybrush Threepwood's Thema in Algorithmik
Nee ich glaube das erstere ist mir nicht so ganz klar Das heißt also das mit jedem Schleifendurchlauf Punkte auf einem Kreis festgelegt werden und dann die verschiedenen Kreise zu einem Zylinder verbunden werden? Aber dann wären es doch nur 2 Punkte in jedem Kreis und müsste der Zylinder dann nicht auf der Seite liegen anstatt zu stehen (was er jetzt tut)? -
Berechnung von Punkten in einem Koordinatensystem
Guybrush Threepwood erstellte Thema in Algorithmik
Da ich mich zur Zeit ein bisschen mit DirectX befasse bin ich auf folgendes Problem gestoßen: Ich habe ein xyz Koordinatensystem, wobei die X-Achse horizontal und die y-Achse vertikal verläuft. Die Z-Achse stellt die Tiefe dar. In diesem Koordinatensystem wird nun ein hohler Zylinder ohne Boden und ohne Deckel dargestellt. Der Zylinder selber besteht aus lauter kleinen Dreiecken. Um die Dreiecke (jedes besteht aus 3 Punkten die miteinander Verbunden werden) darzustellen, werden die Koordinaten der Punkte in folgender Schleife berechnet: for( DWORD i=0; i<50; i++ ) { FLOAT theta = (2*D3DX_PI*i)/(50-1); pVertices[2*i+0].position = D3DXVECTOR3(sinf(theta),-1.0f, cosf(theta)); pVertices[2*i+1].position = D3DXVECTOR3(sinf(theta), 1.0f, cosf(theta)); } [/PHP] D3DXVECTOR3 stellt lediglich eine Struktur dar die die Koordinaten in der Reihenfolge x,y,z beinhaltet. D.h. x ist der sinus von theta y ist -1 bzw 1 z ist der cosinus von theta und das ist auch mein Problem für mich ergibt die Schleife nicht viel Sinn. Ich sehe nur das irgendwas berechnet wird und das dann der Zylinder rauskommt, aber ich verstehe die Rechnung nicht. Wer kann mir helfen? -
WLAN Router: "Warte auf IP Adresse"
Guybrush Threepwood antwortete auf Guybrush Threepwood's Thema in Netzwerke
Das Problem hat sich mitlerweile gelöst. Sie hat eine feste IP eingetragen. Trotzdem danke. -
Directx9: Texturen überlappen
Guybrush Threepwood antwortete auf Guybrush Threepwood's Thema in C++: Compiler, IDEs, APIs
Cool so klappts. Stimmt das hab ich vergessen, weil meine Nachrichtenschleife zuerst anders aussah. Danke! -
Directx9: Texturen überlappen
Guybrush Threepwood antwortete auf Guybrush Threepwood's Thema in C++: Compiler, IDEs, APIs
-
Ich hab folgenden Code der später einen Würfel darstellen soll um den sich gedreht wird. Im Moment werden nur 2 Seiten gezeigt. #include <windows.h> #include <d3dx9.h> #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE) #pragma comment(lib,"d3d9.lib") #pragma comment(lib,"d3dx9.lib") #pragma comment(lib,"winmm.lib") LRESULT CALLBACK MainProc(HWND, UINT, WPARAM, LPARAM); HRESULT InitD3D(); HRESULT Render(); HRESULT Cleanup(); HRESULT SetupMatrices(); HRESULT InitVB(); struct GLOBALS { HWND hMainWindow; HINSTANCE hInst; IDirect3D9* pD3D; IDirect3DDevice9* pD3DDevice; IDirect3DVertexBuffer9* pD3DVB; }g_={0,0,0,0,0}; struct CUSTOMVERTEX { FLOAT x, y, z; // The transformed position for the vertex. DWORD color; // The vertex color. }; APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR lpCmdLine, int nCmdShow) { MSG Msg; WNDCLASS wc; g_.hInst = hInstance; memset(&wc,0,sizeof(wc)); wc.hCursor = LoadCursor(0,IDC_ARROW); wc.hInstance = hInstance; wc.lpfnWndProc = MainProc; wc.lpszClassName = "D3D Test 1"; wc.style = CS_CLASSDC; if (!RegisterClass(&wc)) return FALSE; g_.hMainWindow = CreateWindow("D3D Test 1","Bla", WS_OVERLAPPEDWINDOW, 100,100, 300,300, GetDesktopWindow(),0, hInstance,0); if (!InitD3D()) return FALSE; if (!InitVB()) { Cleanup(); return FALSE; } ShowWindow(g_.hMainWindow,nCmdShow); UpdateWindow(g_.hMainWindow); while(Msg.message != WM_QUIT) { if(PeekMessage(&Msg,0,0,0,PM_REMOVE)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } else Render(); } return Msg.wParam; } LRESULT CALLBACK MainProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { switch(Msg) { case WM_PAINT: { Render(); ValidateRect(hWnd,NULL); return 0; } case WM_DESTROY: { Cleanup(); PostQuitMessage(0); return 0; } default: return DefWindowProc(hWnd,Msg,wParam,lParam); } } HRESULT InitD3D() { if (NULL == (g_.pD3D = Direct3DCreate9(D3D_SDK_VERSION))) return 0; D3DPRESENT_PARAMETERS d3dpp; memset(&d3dpp,0,sizeof(d3dpp)); d3dpp.Windowed = TRUE; d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dpp.BackBufferFormat = D3DFMT_UNKNOWN; if (D3D_OK != g_.pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,g_.hMainWindow, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &g_.pD3DDevice)) return 0; g_.pD3DDevice->SetRenderState(D3DRS_CULLMODE,D3DCULL_NONE); g_.pD3DDevice->SetRenderState(D3DRS_LIGHTING,FALSE); return 1; } HRESULT Render() { if (NULL == g_.pD3DDevice) return 0; g_.pD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(0,0,255),1.0,0); if (SUCCEEDED(g_.pD3DDevice->BeginScene())) { SetupMatrices(); g_.pD3DDevice->SetStreamSource(0,g_.pD3DVB,0,sizeof(CUSTOMVERTEX)); g_.pD3DDevice->SetFVF( D3DFVF_CUSTOMVERTEX ); g_.pD3DDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 4 ); } g_.pD3DDevice->EndScene(); g_.pD3DDevice->Present(NULL,NULL,NULL,NULL); return 1; } HRESULT Cleanup() { if (g_.pD3D != NULL) g_.pD3D->Release(); if (g_.pD3DDevice != NULL) g_.pD3DDevice->Release(); if (g_.pD3D != NULL) g_.pD3D->Release(); return 0; } HRESULT InitVB() { DWORD dwOben =0xffffaaaa, dwUnten =0xaa33aa33, dwLinks =0xff00ff00, dwRechts =0xff00ffff, dwVorne =0x12345678, dwHinten =0x00000000; CUSTOMVERTEX vertices[] = { //hinten { -1.0f,-1.0f, 1.0f, dwHinten }, { 1.0f,-1.0f, 1.0f, dwHinten }, { 1.0f, 1.0f, 1.0f, dwHinten }, { -1.0f,-1.0f, 1.0f, dwHinten }, { -1.0f, 1.0f, 1.0f, dwHinten }, { 1.0f, 1.0f, 1.0f, dwHinten }, //vorne { -1.0f,-1.0f, -1.0f, dwVorne, }, { 1.0f,-1.0f, -1.0f, dwVorne, }, { 1.0f, 1.0f, -1.0f, dwVorne, }, { -1.0f,-1.0f, -1.0f, dwVorne, }, { -1.0f, 1.0f, -1.0f, dwVorne, }, { 1.0f, 1.0f, -1.0f, dwVorne, }, /* //links { -1.0f,-1.0f, -1.0f, dwLinks, }, { -1.0f,-1.0f, 1.0f, dwLinks, }, { -1.0f, 1.0f, -1.0f, dwLinks, }, { -1.0f,-1.0f, 1.0f, dwLinks, }, { -1.0f, 1.0f, 1.0f, dwLinks, }, { -1.0f, 1.0f, -1.0f, dwLinks, }, //rechts { 1.0f,-1.0f, -1.0f, dwRechts, }, { 1.0f,-1.0f, 1.0f, dwRechts, }, { 1.0f, 1.0f, -1.0f, dwRechts, }, { 1.0f,-1.0f, 1.0f, dwRechts, }, { 1.0f, 1.0f, 1.0f, dwRechts, }, { 1.0f, 1.0f, -1.0f, dwRechts, }, //oben { -1.0f, 1.0f, -1.0f, dwOben, }, { -1.0f, 1.0f, 1.0f, dwOben, }, { 1.0f, 1.0f, -1.0f, dwOben, }, { -1.0f, 1.0f, 1.0f, dwOben, }, { 1.0f, 1.0f, 1.0f, dwOben, }, { 1.0f, 1.0f, -1.0f, dwOben, }, //unten { -1.0f, -1.0f, -1.0f, dwUnten, }, { -1.0f, -1.0f, 1.0f, dwUnten, }, { 1.0f, -1.0f, -1.0f, dwUnten, }, { -1.0f, -1.0f, 1.0f, dwUnten, }, { 1.0f, -1.0f, 1.0f, dwUnten, }, { 1.0f, -1.0f, -1.0f, dwUnten, }, */ }; if( FAILED( g_.pD3DDevice->CreateVertexBuffer( 12 *sizeof(CUSTOMVERTEX), 0, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, &g_.pD3DVB, NULL ) ) ) return 0; // Fill the vertex buffer. VOID* pVertices; if( FAILED( g_.pD3DVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 ) ) ) return 0; memcpy( pVertices, vertices, sizeof(vertices) ); g_.pD3DVB->Unlock(); return 1; } HRESULT SetupMatrices() { D3DXMATRIXA16 matWorld; UINT iTime = timeGetTime() % 1000; FLOAT fAngle = iTime * (2.0f * D3DX_PI) / 1000.0f; D3DXMatrixRotationY( &matWorld, fAngle ); g_.pD3DDevice->SetTransform( D3DTS_WORLD, &matWorld ); D3DXVECTOR3 vEyePt( 0.0f, 3.0f,-5.0f ); D3DXVECTOR3 vLookatPt( 0.0f, 0.0f, 0.0f ); D3DXVECTOR3 vUpVec( 0.0f, 1.0f, 0.0f ); D3DXMATRIXA16 matView; D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec ); g_.pD3DDevice->SetTransform( D3DTS_VIEW, &matView ); D3DXMATRIXA16 matProj; D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, 1.0f, 1.0f, 100.0f ); g_.pD3DDevice->SetTransform( D3DTS_PROJECTION, &matProj ); return 1; } [/PHP] Das Problem ist das die vordere Seite die Hintere bei der Drehung überlappt. Wenn ich die beiden Seiten in der Customvertex Struktur vertausche dann überlappt die Hintere Seite. DirectX scheint da irgendeine Priorität zu vergeben. Ich hab mal 2 Bilder angehängt um das Problem zu verdeutlichen. Beim Bild 2 sollte die schwarze Seite vorne sein. Wie bekomme ich es hin das die Seiten sich nicht überlappen, sondern immer die gezeigt wird die gerade vorne ist?
-
FTP Client proframmieren - 'kleines' Projekt???
Guybrush Threepwood antwortete auf noli88's Thema in C und C++
Wozu überhaupt auf Socketebene herab gehen? Windows z.B. stellt verschiedene APIs bereit um diese Aufgaben zu erledigen und ich denke das andere BSe das auch tun werden. -
Anzahl von Datein in einem Verzeichnis
Guybrush Threepwood antwortete auf Happymaker's Thema in C++: Compiler, IDEs, APIs
Mir fällt gerade noch eine plattform unabhänige Methode ein. Man könnte sich in einer Schleife alle Möglichen Dateinamen als String zusammenbauen und dann versuchen diese Datei mit fopen zu öffnen um zu gucken ob sie existiert Ist zwar etwas umständlich und langsam, benötigt aber wirklich nur standard C -
Anzahl von Datein in einem Verzeichnis
Guybrush Threepwood antwortete auf Happymaker's Thema in C++: Compiler, IDEs, APIs
Was hat den boost mit standard C++ zu tun? -
Eine Freundin von mir hat sich am Wochenende ihr DSL eingerichtet und bekommt auch eine Verbindung ins Internet über ihren WLAN Router. Wenn sie jedoch den PC ausschaltet und wieder einschaltet dann bekommt sie die Meldung "Warte auf IP Adresse" wenn sie ins Internet will. Wenn sie dann die drahtlose Verbindung in Windows XP deaktiviert und wieder aktiviert funktioniert es wieder :confused: Hat einer eine Idee woran das liegen könnte?
-
FTP Client proframmieren - 'kleines' Projekt???
Guybrush Threepwood antwortete auf noli88's Thema in C und C++
Unter welchem Betriebssystem willst du das denn machen? -
Standard C/C++ bietet keine Funktion dazu an. Jede Möglichkeit hängt von dem Betriebssystem ab das du benutzt. In diesem Thread findest du ein paar Anregungen. Alternativ kannst du unter Windows die Funktion FillConsoleOutputCharacter verwenden.
-
Programm mit bestimmten Dateien verbinden
Guybrush Threepwood antwortete auf Narf!'s Thema in C++: Compiler, IDEs, APIs
Es gibt aber die Möglichkeit irgendie einen Ordner mit einer Anwendung zu verknüpfen. Dazu musste man eine guid an den namen anfügen die nicht im explorer angezeigt wird und unter dieser guid einen eintrag in der registry vornehmen. wenn dann jemand diesen ordner öfnnet wird die entsprechende anwendung ausgeführt. Ob das auch mit Dateien funktioniert und wie das genau funktioniert weiß ich aber nicht -
Erfahrungswerte Nebenkosten
Guybrush Threepwood antwortete auf Guybrush Threepwood's Thema in Small Talk
Hab übrigens vor kurzem ne sehr geile Wohnung gefunden Hat 56m², ne schöne Terasse und kostet kalt 250€. Ich werde Mitte August einziehen. Danke nochmal an alle die hier gepostet haben -
Hat ja auch niemand behaupted
-
Du weißt aber 1. nicht in wie vielen Sprachen das Buch ist und 2. ob das nur ein kurzer Abschnitt über die Installation des Programms und der Rest über das Programm selber ist, oder nicht.
-
Indem du dir die Klasse Steuer bzw. deren konstruktor mal anguckst und evtl. mal durch debuggst?