Какой самый простой способ нарисовать куб в Windows Forms? - PullRequest
0 голосов
/ 13 февраля 2011

Я делаю приложение для Windows Forms на C # для домашней работы, которое принимает длину куба. Затем он отображает площадь поверхности и объем куба. Это достаточно просто, но нужно также нарисовать куб.

Что я хотел бы знать, так это самый простой способ нарисовать куб. Я должен сделать это с классом Graphics.

Мои мысли о том, как сделать это до сих пор:

paper = myPicBox.CreateGraphics();
myPen = new Pen(Color.Black);
myPen.Width = 3;
paper.DrawRectangle(myPen, xCoord, yCoord, width, height);
paper.DrawLine(myPen, pointOne, pointTwo); // Then repeat this line for the four lines on the Z-axis
paper.DrawRectangle(myPen, xCoord, yCoord, width, height); // Where xCoord and yCoord have been changed to be placed at the end of the lines I've drawn

Это довольно громоздко, поэтому мне было интересно, есть ли более простой или простой способ добиться того же?

Ответы [ 2 ]

3 голосов
/ 13 февраля 2011

Как уже упоминалось, это, вероятно, лучшее, что вы получите с WinForms.Лучшее, что вы можете сделать, - это инкапсулировать свою функциональность в собственный метод, чтобы вы могли рисовать более одного куба одновременно.Таким образом, ваш метод DrawCube () может взять объект origin, length и Graphics и затем нарисовать его.Вызов CreateGraphics будет выполняться перед любыми вызовами DrawCube.

Кроме того, после того, как вы закончили работу со своим графическим объектом, вы должны избавиться от него, вызвав paper.Dispose () (см. эту страницу MSDN ) или вставьте его в сблок .Также проверьте этот веб-сайт , который объясняет, когда использовать CreateGraphics (в основном, когда вы рисуете вне обработчика событий Paint, который вы делаете)

1 голос
/ 13 февраля 2011

В WinForms то, что вы сделали, это только ваша лучшая ставка, если вы ищете что-то как метод DrawCube (), то извините, что его нет в .Net. Любое, что вы делаете, будет включать использование таких примитивных типов, как линия и прямоугольник.

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