Après avoir travaillé avec l'objet .NET GDI + Rectangle, j'ai remarqué que si je crée un rectangle qui est X: 0 * Y: 0 * Largeur: 100 * Hauteur: 100, le Right
et Les propriétés Bottom
sont définies sur 100, 100. Cela ne devrait-il pas être 99, 99? 0 - 99 est de 100 pixels. 0 - 100 correspond à 101 pixels. FWIW, la documentation indique que le droit est calculé par x + width
et le bas est y + height
, mais est-ce exact? Peut-être que "correct" n'a pas d'importance ici tant que c'est cohérent? Tout ce que je sais, c'est que c'est un peu (très ... énervant) ennuyeux!Rectangle .NET désactivé par 1
Répondre
Cela dépend si vous considérez les coordonnées comme des pixels entiers ou si vous marquez les points entre pixels. Si vous les considérez comme des points infiniment petits, le nombre de pixels entre (0, 0) et (100, 0) est 100 pixels. Si, toutefois, vous les considérez comme étiquetant les pixels - de sorte que les deux pixels (0, 0) et (100, 0) sont inclus dans le rectangle, alors c'est clairement 101 pixels de large comme vous le dites.
Ce serait bien de l'avoir épelé quelque part, bien sûr. Je le soupçonne, mais je n'ai pas parcouru la documentation pertinente. Espérons que quelqu'un peut fournir un lien :)
Des documentation.
« Les dimensions de la zone client sont également décrits par une structure rectangulaire contenant des coordonnées client pour la zone Dans tous les cas, le coin supérieur gauche La coordonnée du rectangle est incluse dans la zone client, tandis que la coordonnée inférieure droite est exclue.Les opérations graphiques n'incluent pas les bords droit et inférieur d'une zone cliente. " Donc, vos points x comprennent l'ensemble [0,100] qui est de 100 valeurs.
@Jacob G - Yup c'est ce que j'ai dit dans mon post. –
@ roygbiv- Je suis désolé, mais vous n'avez rien dit de tel dans votre message. Vous vous demandiez s'il était correct que la «bonne» propriété soit 100 vs 99 dans votre scénario. Je fournissais des documents supplémentaires à l'appui du fait que 100 étant correct. Je ne suis pas sûr de savoir comment répondre à la question que vous avez posée justifie un downvote. –
- 1. Dessiner un rectangle dans .NET
- 2. Zoomer un rectangle dans .NET
- 3. Dessiner un rectangle défini par l'utilisateur
- 4. Comment créer des paramètres 1 .NET par instance de DLL
- 5. Can LocalNotifications peut être désactivé par l'utilisateur
- 6. Rectangle classe
- 7. Calcul de la ligne extérieure par un rectangle arrondi
- 8. matlab - rectangle rectangle 2D avec couleur interpolée
- 9. Javascript désactivé, questions courtes
- 10. Faire fonctionner NCover .Net 4.0 Beta 1
- 11. C# FTP avec CD désactivé
- 12. Incrémenter le nombre par 1
- 13. Que signifie PARTITION PAR 1?
- 14. Rectangle d'activation
- 15. Date d'expiration NET 4 Beta 1
- 16. Démarrer un service Windows désactivé?
- 17. Problème avec NSNumber (les valeurs doubles sont désactivées par 1)
- 18. Android: animer un rectangle
- 19. Coloriage d'un rectangle
- 20. Dessiner Rectangle avec XNA
- 21. Bulle d'un événement déclenché par un élément désactivé
- 22. Comment détecter par programme qu'Internet Explorer est désactivé?
- 23. SQL Server: Pourquoi xp_cmdshell est désactivé par défaut?
- 24. Comment arrêter LinkButton d'être grisé par IE lorsqu'il est désactivé?
- 25. BackgroundColor d'un TextBox désactivé
- 26. WPF Forme Rectangle Reliure
- 27. Bouton désactivé .. Mais
- 28. wpf3d rectangle hit test
- 29. rectangle disparaissant avec SDL
- 30. Comment fusionner une cellule 64 par 64 dans une cellule 1 par 1
Si cela se produit, alors il devrait y avoir au moins deux variantes de Rectangle. Pourquoi quelqu'un avec un appareil pixellisé voudrait-il marquer des points entre les pixels? –
@roygbiv: J'ai tendance à penser que c'est un modèle plus élégant qui fonctionne mieux avec la mise à l'échelle pour différents DPI, mais je pense que cela devrait au moins être plus clair. –