Структура данных в C # (3.0), которая представляет CUBE - PullRequest
0 голосов
/ 16 апреля 2010

Не могли бы вы дать мне представление о том, как спроектировать структуру данных в C # (3.0), которая даст представление о трехмерной структуре данных.

Я хочу сказать что-то похожее на куб. Как данные об акциях для просмотра на основе времени, местоположения.

Пожалуйста, приведите простой рабочий пример, или даже ссылка подойдет.

Ответы [ 4 ]

5 голосов
/ 16 апреля 2010

Я сомневаюсь, что это то, что вы ищете, но, поскольку CUBE имеет три одинаковых измерения, его можно представить одним целым числом.

int CUBE = 4; // A 4x4x4 cube 

Данные о запасах имеют более трех измерений (если их так называть), и каждое из них уникально.

Это домашнее задание?

2 голосов
/ 16 апреля 2010

Как насчет:

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

Я не уверен, что вам действительно нужно "3D" здесь.

0 голосов
/ 16 апреля 2010

Вашему кубу нужны следующие свойства:

1) Координата местоположения, которая является наиболее вероятным вектором 3-х чисел, описывающих координаты XYZ 2) Размеры вашего куба, снова вектор из 3-х чисел, описывающих высоту, ширину и глубину куба 3) Ориентация вашего Куба, снова вектор из 3 поплавков, описывающих угол поворота и отклонения рыскания

Обычно для представления куба достаточно матрицы 3х3.

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

Эти 3 вектора являются минимальными и достаточными для описания куба в трехмерном пространстве и выполнения различных операций над ним. Такие операции, как вращение, растяжение, перемещение выполняются с использованием матриц. Документация DirectX / Direct3D содержит много информации такого рода, если это то, что вы ищете. Также подойдет любая базовая книга по 3D-играм.

0 голосов
/ 16 апреля 2010

эм, хорошо, если принять ваш вопрос к значению, я бы предложил что-то вроде

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
  }
}

Но вы также можете иметь в виду трехмерный массив ... который представляет собой массив массивов массивов

В верхней части моей головы, у вас может быть самый внутренний массив, имеющий три элемента, представляющих значение x, y, z вершины. Тогда у вас будет массив этих вершинных массивов, скажем, снова три, которые будут треугольниками. Тогда у вас есть массив этих треугольников для создания объекта.

Хотя здесь есть ситуация, когда объектно-ориентированное программирование облегчит разработку. Создайте класс вершин с целыми числами и функциями для управления одной вершиной. Затем создайте класс треугольника, который имеет три свойства «вершины» и функции для управления треугольником, например вращение вокруг одной вершины. Затем еще один класс для объекта, который может иметь массив треугольников.

Дайте мне знать, если вы хотите, чтобы я расширил или уточнил что-либо из этого

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...