- Напечатать фигуру на Java
- Решение
- Графика в Java. Graphics
- Graphics
- Как начертить прямую линию?
- Как задать цвет?
- Как задать цвет фона?
- Как нарисовать прямоугольник?
- Как залить прямоугольник цветом?
- Как нарисовать прямоугольник с закругленными углами?
- Как нарисовать овал?
- Как нарисовать окружность?
- Как нарисовать дугу?
- Как нарисовать многоугольник?
- Как создать объект точки?
- Как определить, что точка принадлежит многоугольнику?
- Как вывести строку?
- Как задать шрифт?
- Как задать цвет текста?
- Как начертить график?
- OlgaKulikova / Figure.java
- Saved searches
- Use saved searches to filter your results more quickly
- bobbui/console-drawing
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
Напечатать фигуру на Java
Запрещено использовать строки, массивы, а также управлять курсором, можно только использовать циклы, условный оператор, а также Console.Write(. ) и Console.WriteLine(…).
У меня получилось сделать рамку:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
package com.company; import java.io.Console; import java.util.Scanner; public class Main public static void main(String[] args) else if (j == 1 || j == w) System.out.printf(" else { System.out.printf(" "); } } } System.out.printf("\n"); } } }
Напечатать фигуру
Доброго времени суток. Надеюсь на вашу помощь. Задание: Напечатать в консоле следующую фигуру.
Напечатать фигуру
Добрый вечер. Надеюсь на вашу помощь. Java Задание: Напечатать в консоле следующие фигуры. Для.
Напечатать фигуру
напечать в консоле следующую фигуру Для печати реализовать отдельную функцию с параметрами .
Сообщение было отмечено kris1608 как решение
Решение
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
package ru.ismoke; public class Cyber { public static void main(String[] args) { int w = 12; int h = 23; int x = 1; h -= 2; w -= 2; printBorder(w); loop: while (true) { for (int j = 0; j x; j++) { printFill("*", " ", w / 2); h--; if (h == 0) break loop; } for (int j = 0; j x; j++) { printFill(" ", "*", w / 2); h--; if (h == 0) break loop; } x++; } printBorder(w); } private static void printBorder(int width) { System.out.print("+"); for (int i = 0; i width; i++) { System.out.print("-"); } System.out.println("+"); } private static void printFill(String s, String s2, int width) System.out.print(" for (int i = 0; i width; i++) { System.out.print(s2); } System.out.println("|"); } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Графика в Java. Graphics
Графику в Java обслуживают классы Graphics и Graphics2D.
Работа с графикой осуществляется в графическом контексте элементов, унаследованных от класса Component. Понимать это можно так: на элементах управления, например, JFrame, JPanel, JButton и других, есть возможность рисовать. Такие элементы обладают графическим контекстом, в этом контескте мы и рисуем. Всё, что нарисуем в контексте будет показано на элементе. Классы Graphics и Graphics2D нужны для работы с графическим контекстом. Мы должны получить экземпляр такого класса и, используя его методы, рисовать. Получить экземпляр контекста можно в методе paint:
этот метод наследуется из класса Component. Аргумент Graphics g создаётся системой, а мы берём его в готовом виде и используем для рисования. При создании элемента метод paint будет вызван автоматически.
Начнём изучать работу с графикой в Java с класса Graphics.
Graphics
Рассмотрим простой пример использования методов класса Graphics в Java:
Получаем:
Ниже разбираются все методы, использованные в примере.
Как начертить прямую линию?
Метод drawLine класса Graphics начертит прямую линию:
здесь 20, 30 — это координаты x, y начала линии,
360, 30 — координаты конца линии.
Как задать цвет?
Метод setColor класса Graphics сделает текущим новый цвет:
// Запоминаем исходный цвет;
Color oldColor = g.getColor();
// Создаём синий цвет;
Color newColor = new Color(0, 0, 255);
// Устанавливаем синий цвет;
g.setColor(newColor);
// Чертим линию синим цветом;
g.drawLine(20, 30, 360, 30);
// Восстанавливаем исходный цвет;
g.setColor(oldColor);
Аргументы конструктора new Color(0, 0, 255) — это красный, зелёный и синий цвета соответственно (rgb).
Как задать rgb цвета? В примере задан чисто синий цвет, т.к. значения других составляющих равны нулю. Вот чисто красный цвет:
Значения составляющих цвета изменяются от 0 до 255.
Светло-синий цвет, который мы использовали для заливки прямоугольника:
Как задать цвет фона?
Задать цвет фона можно методом setBackground:
Как нарисовать прямоугольник?
Методом drawRect класса Graphics:
20, 40 — это координаты верхнего левого угла прямоугольника;
340 — длина;
20 — высота прямоугольника.
Как залить прямоугольник цветом?
Методом fillRect класса Graphics:
newColor = new Color(0, 215, 255);
g.setColor(newColor);
g.fillRect(21, 41, 339, 19);
g.setColor(oldColor);
Как нарисовать прямоугольник с закругленными углами?
Методом drawRoundRect класса Graphics.
Сопряжение, т.е. закругление на углах, делается с помощью частей овала.
первые 4 аргумента как у обычного прямоугольника. Пятый аргумент — 20 — это ширина прямоугольника, в который вписана часть овала сопряжения. Шестой аргумент — 15 — это высота прямоугольника, в который вписана часть овала сопряжения.
Как нарисовать овал?
Методом drawOval класса Graphics:
Аргументы определяют прямоугольник, в который вписан овал.
Как нарисовать окружность?
Методом drawOval класса Graphics:
Аргументы определяют прямоугольник, в который вписана окружность. Здесь рисуем овал, но длина и высота описанного прямоугольника равны, что и даёт окружность.
Как нарисовать дугу?
Методом drawArc класса Graphics:
первые 4 аргумента как у обычного прямоугольника. Пятый аргумент — 0 — это угол, от которого отсчитывается угол самой дуги. 180 — это угол дуги. Углы отсчитывают от горизонтальной оси: по часовой стрелке отрицательное направление, протв — положительное. В примере 180 градусов (величина дуги) отсчитываем от горизонтальной линии.
Как нарисовать многоугольник?
Методом drawPolygon класса Graphics:
Здесь создаём объект класса Polygon. arrayX — это х-координаты вершин многоугольника, arrayY — это y-координаты вершин многоугольника, 8 — число вершин многоугольника.
Как создать объект точки?
Для этого используем класс Point:
аргументы — это x, y координаты.
Как определить, что точка принадлежит многоугольнику?
Polygon poly = new Polygon(arrayX, arrayY, 8);
g.drawPolygon(poly);
Point aPoint = new Point(50, 190);
if(poly.contains(aPoint))
g.drawString(«Yes», 50, 190);
>
Используем метод класса Polygon contains для определения лежит ли точка в многоугольнике.
Как вывести строку?
Методом drawString класса Graphics:
строка «Yes» будет выведена от точки с координатами 50, 190.
Как задать шрифт?
Для этого используем класс Font:
где «Tahoma» — название шрифта,
Font.BOLD|Font.ITALIC — жирный шрифт с наклоном,
40 — высота шрифта.
После задания шрифта мы делаем его текущим и выводим строку этим шрифтом:
Как задать цвет текста?
Чтоб задать цвет текста создадим и установим в графический контекст новый цвет:
Здесь мы создали чисто синий цвет. А теперь выводим строку синим цветом:
Как начертить график?
Как график функции начертить? Сначала начертим координатные оси:
// Draw axes;
g.drawLine(20, 220, 20, 350);
g.drawLine(20, 350, 360, 350);
g.drawString(«Y», 25, 230);
g.drawString(«X», 350, 346);
А теперь построить график функции можно просто. Для этого используем метод drawPolyline класса Graphics:
// Draw a curve;
int[] xArray = ;
int[] yArray = ;
int nPoint = 10;
g.setColor(newColor);
g.drawPolyline(xArray, yArray, nPoint);
g.setColor(oldColor);
g.drawString(«y = f(x)», 180, 267);
График строим по точкам, xArray – это x-координаты точек, yArray – y-координаты точек графика, nPoint — это число точек.
Наш график являет собой кривую намагничивания. Но почему график такой угловатый (см. картинку выше)? Если взять больше точек, то график будет более плавным.
OlgaKulikova / Figure.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
package Figure ; |
public abstract class Figure |
public abstract double square (); |
> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
package Figure ; |
public class Rectangle extends Figure |
public int height , width ; |
public Rectangle ( int height , int width ) |
this . height = height ; |
this . width = width ; |
> |
@ Override |
public double square () |
return height * width ; |
> |
public void drawRectangle ( char dash , char pipe , char space ) |
char [][] rectangle = new char [ height ][ width ]; |
for ( int i = 0 ; i < height ; i ++) |
for ( int j = 0 ; j < width ; j ++) |
if ( i == 0 || i == ( height — 1 )) |
rectangle [ i ][ j ]= dash ; |
> else if ( j == 0 || j == ( width — 1 )) |
rectangle [ i ][ j ] = pipe ; |
> else |
rectangle [ i ][ j ]= space ; |
> |
> |
> |
for ( int i = 0 ; i < height ; i ++) |
for ( int j = 0 ; j < width ; j ++) |
System . out . print ( rectangle [ i ][ j ]); |
> |
System . out . println (); |
> |
> |
> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
package com . Module2 . Lesson1 . Lesson3 ; |
// Написать программу, которая будет рисовать на консоли прямоугольник с заданными длинами сторон. |
import Figure . Rectangle ; |
public class Task4 |
public static void main ( String [] args ) |
Rectangle rec = new Rectangle ( 5 , 15 ); |
char dash = ‘-‘ , pipe = ‘|’ , space = ‘ ‘ ; |
rec . drawRectangle ( dash , pipe , space ); |
> |
> |
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
A simple, fun program to draw on console.
bobbui/console-drawing
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
A simple, fun program to draw on console.
The program was built using Java 8 and Maven
Command Description C w h Create a new canvas of width w and height h. L x1 y1 x2 y2 Create a new line of 'x' from (x1,y1) to (x2,y2). Only support horizontal or vertical lines. R x1 y1 x2 y2 Create a new rectangle, (x1,y1) is upper left corner & (x2,y2) is lower right corner. B x y c Fill the entire area around (x,y) with "colour" c. Same as that of the "bucket fill" tool in paint programs. Q Quit.
enter command: C 20 4 ---------------------- | | | | | | | | ---------------------- enter command: L 1 2 6 2 ---------------------- | | |xxxxxx | | | | | ---------------------- enter command: L 6 3 6 4 ---------------------- | | |xxxxxx | | x | | x | ---------------------- enter command: R 14 1 18 3 ---------------------- | xxxxx | |xxxxxx x x | | x xxxxx | | x | ---------------------- enter command: B 10 3 o ---------------------- |oooooooooooooxxxxxoo| |xxxxxxooooooox xoo| | xoooooooxxxxxoo| | xoooooooooooooo| ----------------------
- From prebuilt JAR: java -jar console-drawing-1.0.jar
- From source:
- Run program: mvn exec:java
- Test: mvn test
- Create JAR: mvn package