float Location C#

Neue Frage »

Auf diesen Beitrag antworten »
InformaTiger float Location C#

Hallo,
ich wollt fragen ob es irgendwie möglich ist eine PictureBox nach einem float aus zurichten.

code:
1:
2:
3:
PictureBox test = new PictureBox();
test.Location = new PointF(0.23, 0.453);


Danke schon im voraus smile

Lg
InformaTiger
 
Auf diesen Beitrag antworten »
eulerscheZahl

Wie soll das dann überhaupt aussehen? Soll das dann in Bezug zur Gesamtgröße sein, oder wie hattest du dir das vorgestellt?

Nein, das wird in Pixeln Abstand nach links und oben angegeben.
PointF habe ich noch nie gebraucht, nichtmal als ich mir einen Funktionsplotter gebastelt habe, keine Ahnung, wofür das gut sein soll.
Falls meine Interpretation mit dem Bezug zur Gesamtgröße richtig sein sollte (ungetestet):
code:
1:
2:
test.Left = (int)(this.Width * 0.23);
test.Top = (int)(this.Height * 0.453);


Wahrscheinlich hast du es schon, für den Fall dass nicht, weise ich trotzdem darauf hin:
code:
1:
test.Parent = this;

sonst siehst du keine PictureBox und wuderst dich, ging mir zumindest das erste Mal so.
Auf diesen Beitrag antworten »
InformaTiger

Hallo,
hat sich inzwischen erledigt... hab ne andere Lösung gefunden.
Der Interesse halber: ich meinte ob es möglich ist eine PictureBox eben nicht in Integerwerten (Ganze Zahlen) sondern in Floatwerten (Gleitkommazahlen) zu platzieren. Etwa so wie im Anhang.

Danke smile

Lg
InformaTiger
Auf diesen Beitrag antworten »
El Homo PictureBox.Location Float

und ?? geht es oder nicht ?
 
Auf diesen Beitrag antworten »
eulerscheZahl

Nein, das geht nur mit Ganzzahlen.
Was man machen kann: Die Position als float speichern und beim Verschieben dann auf Ganzzahlen runden.
Auf diesen Beitrag antworten »
InformaTiger

Ok, Danke! smile

Dann ist das Verschieben von PictureBoxen in einen beliebigen Winkel also nur durch ein Verhältnis zwischen x und y möglich?

Lg
InformaTiger
Auf diesen Beitrag antworten »
eulerscheZahl

Aber das reicht doch auch!
[latex]\Delta x = l \cdot \sin(\alpha) \\ \Delta y = l \cdot \cos(\alpha)[/latex]
wobei l die Länge ist, um die du verschieben willst.
Auf diesen Beitrag antworten »
InformaTiger

Aber genau da ist ja das Problem, dass ich diese nicht um einen float- wert verschieben kann!!! Zumindest hat das bei mir nicht geklappt... verwirrt

Lg
InformaTiger
Auf diesen Beitrag antworten »
eulerscheZahl

PointF echtePosition = ...; bzw. selbst eine struct mit double definieren, Math.Sin und Math.Cos geben auch ein double zurück.
mit echtePosition wird dann auch immer gerechnet/verschoben.

Und nur bei der Ausgabe auf den Bildschirm dann:
pictureBox.Left = (int)echtePosition.X;
pictureBox.Top = (int)echtePosition.Y;

Intern wird die Position also weiter als float/double gespeichert.
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »