la conversion des valeurs doubles pour faire un Point de type
Je veux dessiner une courbe (une diode courbe) dans un picturebox à l'aide de imagefrom bitmap. J'ai un problème aujourd'hui et c'est mon point de données sont enregistrés en tant que Double et c'est vraiment important de garder la precesion.
par exemple un point dans l'intrigue que j'ai est comme ceci:
Tension: -0.175 Actuel: -9.930625 E-06
Oui, c'est un Double! maintenant, comment puis-je avoir un point de le faire par exemple:
Point[] ptarray = new Point[3];
ptarray[0] = new Point(250, 250);
Est-il une alternative au Point[] qui accepte les valeurs doubles? J'ai un 500x500 zone d'image. est-il un moyen de convertir ces valeurs de points valides qui peuvent encore sauver precesion? Je suis wotking avec micro-Ampères (10^-6) et les Tensions!
OriginalL'auteur Saeid Yazdani | 2011-03-20
Vous devez vous connecter pour publier un commentaire.
Bien, si
float
est assez de précision, vous pouvez utiliser lePointF
struct:Si vous en avez vraiment besoin, vous pouvez définir votre propre
PointD
struct:L'égalité de code à l'origine de ici.
La
ToPoint()
méthode permet de convertir unPoint
objet, même si bien sûr la précision sera tronqué.Voir stackoverflow.com/a/5221407/380384 pour le bon
GetHashCode()
pour les structures.OriginalL'auteur Cameron
Si c'est juste pour stocker ces valeurs il y a toujours
Tuple
:OriginalL'auteur BrokenGlass
Bien que le
System.Drawing.Point
struct utiliseint
valeurs, et laSystem.Drawing.PointF
struct utilisefloat
valeurs, il y a aussi leSystem.Windows.Point
struct, qui utilisedouble
valeurs. Donc c'est probablement votre meilleur choix, sifloat
ne pas fournir suffisamment de précision pour répondre à vos besoins.Cependant, puisque le nom de la structure est en conflit avec celle de la
int
base, il peut être difficile à utiliser dans un fichier qui a déjà uneusing System.Drawing
directive:Heureusement, vous pouvez contourner ce problème en utilisant un alias:
OriginalL'auteur Karl von L