2010-04-16 7 views
0

Pouvez-vous me donner une idée de la façon de concevoir une structure de données en C# (3.0) qui donnera une représentation de la structure de données 3D.Structure de données en C# (3.0) qui représente un CUBE

Je veux dire quelque chose de similaire au cube. Comme les données de stock à afficher en fonction de l'heure, de l'emplacement. Veuillez donner un exemple de travail simple ou même un lien fera l'affaire.

C'est urgent.

Tout exemple sera apprécié.

Merci à l'avance

+1

umm, un réseau à 3 dimensions? var t = new int [10,10,10]; – BlackICE

+1

@ Penser Vous ne pensez pas en dehors de la boîte! –

+0

Vous ne fournissez pas suffisamment d'informations ... une dimension est simplement un attribut; par cette définition, tout objet ayant trois propriétés est une structure de données tridimensionnelle. –

Répondre

2

Que diriez-vous:

struct StockTickData 
{ 
    string Symbol; 
    decimal Price; 
    DateTime When; 
    string Where; 
} 

Je ne suis pas sûr que vous avez vraiment besoin "3D" ici.

+0

+1, même s'il s'agit maintenant d'une structure "4D";) –

+1

@Adam: pas si vous êtes basé sur 0. :) – MusiGenesis

5

Je doute que ce soit ce que vous cherchez, mais comme un CUBE a trois dimensions identiques, il peut être représenté avec un seul entier.

int CUBE = 4; // A 4x4x4 cube 

données stock a plus de trois dimensions (si vous devez les appeler) et chacun est unique.

Est-ce que ce sont les devoirs?

+2

Je parie que c'est devoirs - bonne réponse aussi :) –

+4

Je ne pense pas ... à en juger par ses autres questions, il ne semble pas qu'il pose des questions à la maison. –

0

erm bien prendre votre question signifie une chose, je dirais quelque chose comme

class cube{ 
    private size; 
    public set_size(value){ 
    if (value < 0){ 
     value = -value; // makes sure we have a positive size 
    } 
    this.size = value 
    } 
    public get_size(){ 
    return this.size; 
    } 
    public get_volume() 
    { 
    return this.size*this.size*this.size 
    } 
} 

mais vous pouvez aussi vouloir dire un tableau 3D ... qui est un tableau de tableaux de tableaux

Du haut de ma tête, vous pourriez avoir le tableau le plus interne ayant trois éléments, représentant une valeur x, y, z d'un sommet. Vous auriez alors un tableau de ces tableaux de vertex, disons trois encore, qui seraient des triangles. Ensuite, vous avez un tableau de ces triangles pour faire un objet.

Bien qu'il existe une situation où la programmation orientée objet va simplifier le développement. Faire une classe vertex avec des entiers et des fonctions pour contrôler le sommet unique. Ensuite, créez une classe de triangle qui a trois propriétés 'vertex' et des fonctions pour contrôler le triangle, comme tourner autour d'un sommet. Puis une autre classe pour un objet qui peut avoir un tableau de triangles.

Laissez-moi savoir si vous me voulez agrandir ou clarifier tout cela

+2

Vous faites vraiment ce genre de chose à vos collègues? En changeant tranquillement un paramètre passé à une autre valeur? – MusiGenesis

+0

Je vois ce que vous voulez dire. Mais généralement, c'est ce que la documentation est pour. Voulez-vous commencer à utiliser une fonction sans savoir ce qu'il faut passer ou ce que la fonction fait même? Deuxièmement, avec la POO, une classe est destinée à garder ses données sensibles, donc dans ce cas, ne pas permettre la longueur négative est logique, après tout, vous essayez de dessiner un cube dont les côtés sont de -1 mètre de long. Désolé si je semble un peu argumentatif, c'est juste mon point de vue sur la façon dont ces choses devraient être faites. Je suis en faveur de la «boîte noire expliquée», c'est-à-dire que vous ne «savez» pas comment une classe fonctionne, mais on vous a dit comment vous attendre à ce que cela fonctionne. – thecoshman

+0

Vous avez certainement raison; une taille négative ne devrait pas être autorisée. Voilà à quoi servent les exceptions. –

0

Vos besoins cube propriétés suivantes:

1) Lieu de coordonnées qui est vecteur le plus probable de 3 flotteurs décrivant les coordonnées XYZ. 2) Dimensions de votre cube, vecteur encore de 3 flotteurs décrivant la largeur de la hauteur et de la profondeur de cube 3) Orientation de votre Cube, à nouveau vecteur de 3 flotteurs décrivant pas de lacet et de roulis angles

Fondamentalement, une matrice 3x3 est suffisant pour représente le cube.

[X Y Z] [L W D] [Y P R]

Ces 3 vecteurs sont le minimum et suffisante pour décrire un cube dans l'espace 3D, et effectuer diverses opérations sur elle. Les opérations comme la rotation, l'étirement, le déplacement sont effectuées à l'aide de matrices. La documentation de DirectX/Direct3D contient beaucoup d'informations sur ce genre de choses, si c'est ce que vous cherchez. Aussi tout livre de base 3D gamedev fera l'affaire.

Questions connexes