Du bist nicht angemeldet.

Werbeanzeige

1

25.12.2017, 20:47

[GELÖST] tbDraw2D tut nich so wie es soll

Hey Leute,

ich habe wieder einmal ein Problem.

Ich wollte ein Programm zum Rendern der Mandelbrot-Menge schreiben, jedoch funktioniert die Visualisierung nicht ganz so wie sie sollte. Ich habe einfach ein Rechtek mit transformierten Vertices über den ganzen Bildschirm erzeugt und dann auf die Textur des Rechtecks (nur ein weißes Bild) mit tbDraw2D die einzelnen Pixel gezeichnet. Zum veranschaulichen, was nicht ganz klappt, so sieht ein Rechteck mit den Koordinaten links oben: 0,0 und rechts unten: Breite, Höhe des Bildes und ein "Kreis" mit Radius Höhe / 2 und Mittelpunkt: Breite / 2, Höhe / 2 aus:

(Link)


Hier der Code:


Der Code ist nicht gerade der beste, aber es sollte nicht daran liegen.
Wenn ich auf der Textur (weißer Hintergrund) ein paar Flecken mache, werden diese an der richtigen Stelle angezeigt, also stimmt etwas mit tbDraw2D nicht. Wenn ich beim erzeugen der Textur die MIP-Map erzeugung auf Default setze, wird nur noch die weiße Textur angezeigt. Wenn ich die Texturkoordinaten der Vertizes verändere wird das Rechteck und der Kreis mit gestreckt und verschoben.

Es wäre toll wenn mir jemand helfen würde, oder mich auf die richtige Spur bringen könnte.

Edit: Code auf das gekürzt, wo der Fehler stecken könnte.
Albert Einstein sagte: "2 Stunden mit einem netten Mädchen fühlen sich an wie 20 Minuten, 20 Minuten auf einem heißen Ofen fühlen sich an wie 2 Stunden. - Das ist Relativität"

Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »Patrick Z.« (13.02.2018, 18:05)


2

29.12.2017, 16:52

Kann es sein, dass da in der TriBase ein Fehler ist?
Albert Einstein sagte: "2 Stunden mit einem netten Mädchen fühlen sich an wie 20 Minuten, 20 Minuten auf einem heißen Ofen fühlen sich an wie 2 Stunden. - Das ist Relativität"

Dalon

Frischling

Beiträge: 81

Wohnort: Berlin

Beruf: Freiberufler

  • Private Nachricht senden

3

13.02.2018, 11:03

Dein Fehler ist, dass du tbDraw2D die Bildschirmgröße übergibst. tbDraw2D arbeitet aber mit der Textur und daher ist die maximale Breite und Höhe die deiner Textur in die du zeichnen möchtest.

C-/C++-Quelltext

1
2
g_pDraw->DrawFilledRect(0, 0, D3D.GetScreenSize().x, D3D.GetScreenSize().y, g_pDraw->MakeRGB(0, 0, 200));
g_pDraw->DrawFilledCircle(D3D.GetScreenSize().x / 2, D3D.GetScreenSize().y / 2, D3D.GetScreenSize().y / 2, g_pDraw->MakeRGB(200, 0, 0));


Gib da jeweils statt D3D.GetScreenSize().x/y g_pDraw->GetWidth() bzw. g_pDraw->GetHeight() ein, dann funktioniert es wie erwartet.

4

13.02.2018, 18:04

Hey Dalon,
es ist nett, dass du mir jetzt antwortest, aber ich habs inzwischen schon längst selber gelöst (genauso wie du es vorgeschlagen hast).

Ich hätte natürlich die Lösung hier posten können :dash: , aber dafür war ich zu faul :D
Albert Einstein sagte: "2 Stunden mit einem netten Mädchen fühlen sich an wie 20 Minuten, 20 Minuten auf einem heißen Ofen fühlen sich an wie 2 Stunden. - Das ist Relativität"

Werbeanzeige