Printing 3D shape to consoleJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Printing 3D shape to console

Сообщение Anonymous »

Я научился печатать 2D-фигуры с символами «*» с помощью циклов for благодаря проекту, над которым я работал, но мне хотелось немного повысить свой уровень. Я хочу создавать 3D-фигуры, используя и комбинируя 2D-фигуры.
Например, легко напечатать 2D-квадрат, но я хочу напечатать 3D-куб. То же самое и с прямоугольными призмами. Я могу печатать прямоугольники, но не могу печатать прямоугольные призмы.
Я знаю, что напечатать 3D-объекты на 2D-терминале не совсем возможно, но, по крайней мере, они могут выглядеть как 3D, просто добавив немного другие формы в 2D-форму.
Я не смог найти никаких решений или идей о том, как напечатать эти вещи. Похоже, что эту проблему можно решить с помощью некоторых базовых циклов for, но что бы я ни пробовал, это не сработало.
Моя идея здесь:
Печать квадрата на экране, а затем помещать два разных параллелограмма сбоку и сверху, чтобы он выглядел как трехмерный куб.
Та же идея применима и для прямоугольных призм. Сначала напечатайте прямоугольник, затем напечатайте два разных параллелограмма сбоку и сверху, чтобы он выглядел как трехмерный.
Сначала я попробовал прямоугольную призму. Я не могу напечатать еще один параллелограмм на стороне, который имеет ту же длину, что и верхний параллелограмм, и ту же высоту, что и прямоугольник.
Если я смогу научиться печатать этот, Я попробую напечатать другие 3D-фигуры, которые придут мне в голову.
Я смог дойти только до этого момента и не могу идти дальше. То, что я пробовал, находится здесь:

Код: Выделить всё

import java.util.Scanner;

public class Empty {

public static void rectangle() {
int a = 5;
int b = 8;
for (int i = 0; i < a; i++) {
if (i == 0) continue;
for (int j = 0; j < b; j++) {
if (j == 0 || j == (b - 1) || i == (a - 1)) {
System.out.print(" * ");
} else {
System.out.print("   ");
}
}
System.out.println();
}
}
public static void parallelogram() {
int i, j, k;
int height = 5;
int width = 8;
for (i = 0; i < height; i++) {
for (j = 0; j < height - i - 1; j++) {
System.out.print("   ");
}
for (k = 0; k < width; k++) {
if (i == 0 || i == height - 1 || k == 0 || k == width - 1) {
System.out.print(" * ");
} else {
System.out.print("   ");
}
}
System.out.println();
}
}
public static void main(String[] args) {
parallelogram();
rectangle();
}

}
Этот блок кода предоставляет фигуру, содержащую параллелограмм и прямоугольник под ним. Я пытаюсь соединить правый верхний угол параллелограмма и правый нижний угол прямоугольника с помощью символов «*».

Это просто добавление еще одного параллелограмма. Вот результат:

Код: Выделить всё

             *  *  *  *  *  *  *  *
*                    *
*                    *
*                    *
*  *  *  *  *  *  *  *
*                    *
*                    *
*                    *
*  *  *  *  *  *  *  *
То, что мне нужно, находится здесь:

Изображение


Подробнее здесь: https://stackoverflow.com/questions/792 ... to-console
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»