Koordinatensystem und Zoomfunktion
-
Hallo zusammen,
ich habe folgendes Problem.
Ergebnis soll sein:
2D
Eine Topologischen Landkartenausschitt darstellen und mit zb.Zoomfunktion ausstatten.So ich habe jetzt speziell das Problem der darstellung wenn ich die Karte mir folgender funktionalität ausstatten möchte ZoomIn und ZoomOut.
Wenn ich die Karte Normal darstelle benötige ich je Punkt einen Pixel.
Jetzt möchte ich allerdings nicht mehr das ein Punkt ein Pixel benötigt sonder je Punkt ein Rechteck verwendet wird mit 5*5 Pixel und ich den Punkt wie auch die anderen Vergrößern bzw. Verkleinern kann.Kann da jemand einem DAU weiterhelfen ?
mfg
cc
-
Du machst also bei der normalansicht für jeden Punkt einen Pixel. Warum machst du dann eben beim Zoom nicht einfach für jeden Punkt gleich 5*5 Pixel farbig? Musst halt aufpassen, dass du bei jedem Punkt auch 5 Pixel weitergehst und dann von da wieder zum Zeichnen anfängst.
Oder hast du ein ganz anderes Problem?
-
Hallo,
giebt es keine funktion in der MFC die mir die möglichkeit schon von Hause aus giebt oder muss ich alles händisch definieren ?
Da sich aus den Rechtecken auch gleichzeitig die Koordinaten ergeben ?
Ich bin noch anfänger und tuhe mich immoment sehr schwer mit Koordinatensystemen und deren Interpretation.
danke im vorraus.
mfg
cc
-
... mit MFC eine Graphikanwenundung... naja, für den Anfang zum Lernen vielleicht aber für mehr is das glaub ich nciht gut.
Zum Problem:Ich glaub da gibt es keine Funktion, aber das ist doch eigentlich ganz einfach:
bei 1fachen Zoom ist jeder PUnkt einen Pixel groß
bei 2-fachen 2 Pixel...usw.
dann musst du immer um zoob pixel wieterrücken um die anfangspunkte der rechtecke zu kriegen
ich nehme mal an, die pixel sind in einem 2-d-feld gespeichert, dann könntest du es so machen:
is nur pseudocodefor(int x = 0; x < maxX; ++x) { for(y = 0; y < MaxY; ++y) { anfangspunkt = x * zoom; y * zoom endpunk = (x + 1) * zoom - 1; (y+1)*zoom -1 rechteck(anfangspuntk, endpunkt) } } //schon feritg