Créer un rectangle 3D en utilisant c # - débordement de la pile

Il suffit de créer votre propre. Voici quelques idées:

Attendez. A la réflexion: une origine, une hauteur, une largeur et un vecteur normal ne sera pas vraiment coupé, puisque vous ne disposez pas d'un sentiment de « haut » comme vous le faites en 2D.







Alors, que gratter. Y penser révèle que la largeur et la hauteur en 2D sont des vecteurs en fait deux, sauf que leur direction est implicite: La largeur est la longueur d'un vecteur dans la direction X, la hauteur est la longueur d'un vecteur dans la direction y.

Ainsi, le modèle de votre rectangle comme celui-ci:

  • un point (origine)
  • une largeur de vecteur (ce qui est souvent appelé u en mathématiques)
  • une hauteur de vecteur (ce qui est souvent appelé v en mathématiques)
  • le vecteur normal n'est plus nécessaire car il est peut être calculée par le produit de vectorial Largeur x Hauteur

Les trois autres points de votre rectangle peut alors être calculé comme suit:

  • Origine + Largeur
  • Origine + Largeur + Hauteur
  • Origine + Hauteur






La classe rectangle vous avez lié à des modèles un rectangle 2D (je ne sais pas ce qu'est un rectangle 3D serait, d'ailleurs).

Quasiment l'ensemble des offres de l'espace de noms System.Drawing avec 2D, vous pouvez donc pas personnaliser cette façon.

L'espace de noms de parent System.Drawing contient des types qui prennent en charge la fonctionnalité graphique GDI + base. namespaces enfants prennent en charge la fonctionnalité graphique avancée en deux dimensions et vecteur, la fonctionnalité d'imagerie avancée, et liés à l'impression et les services typographiques.

Oded ♦
366k ● 58 ● 649 ● 839

(Sur la fonction d'intersection)

Vous ne pouvez pas créer une telle fonction.

La fonction d'intersection de 2 rectangles en 2D est intéressante car elle vous retourne un troisième rectangle (que peut être vide).

Intersection de 2 rectangles « 3D » dans l'espace ne sont pas toujours rectange 3D!

(Par exemple prendre 2 rectangles identiques et faire tourner une, puis prendre l'intersection.)

Donc, vous ne pouvez pas créer un objet rectangle, puis une fonction d'intersection qui retourne un objet rectangle.

Vous avez besoin plus complète bibliothèque de gestion d'objets 3D.

Un rectangle 3D est délimité par 6 avions. de sorte que vous pouvez l'identifier par 6 contraintes sur x, y, z

Ensuite, l'intersection de 2 rectangles 3D sera juste un objet 3D identifié par 12 contraintes.

Si ces 12 contraintes peuvent être SIMPLIFIÉE 6 ceux qu'il peut être un rectange (mais pas toujours le cas) et si elle ne peut pas alors ce n'est pas un rectangle.







Articles Liés