Графику в Java обслуживают классы Graphics и Graphics2D.
Работа с графикой осуществляется в графическом контексте элементов, унаследованных от класса Component. Понимать это можно так: на элементах управления, например, JFrame, JPanel, JButton и других, есть возможность рисовать. Такие элементы обладают графическим контекстом, в этом контескте мы и рисуем. Всё, что нарисуем в контексте будет показано на элементе.
Классы Graphics и Graphics2D нужны для работы с графическим контекстом. Мы должны получить экземпляр такого класса и, используя его методы, рисовать. Получить экземпляр контекста можно в методе paint:
public void paint(Graphics g);
этот метод наследуется из класса Component. Аргумент Graphics g создаётся системой, а мы берём его в готовом виде и используем для рисования. При создании элемента метод paint будет вызван автоматически.
Начнём изучать работу с графикой в Java с класса Graphics.
Graphics
Рассмотрим простой пример использования методов класса Graphics в Java:
Лучшая IDE для Python!
Получаем:
Ниже разбираются все методы, использованные в примере.
Как начертить прямую линию?
Метод drawLine класса Graphics начертит прямую линию:
g.drawLine(20, 30, 360, 30);
здесь 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 цвета? В примере задан чисто синий цвет, т.к. значения других составляющих равны нулю. Вот чисто красный цвет:
Color newColor = new Color(255, 0, 0);
А это чисто зеленый цвет:
Color newColor = new Color(0, 255, 0);
Значения составляющих цвета изменяются от 0 до 255.
Светло-синий цвет, который мы использовали для заливки прямоугольника:
newColor = new Color(0, 215, 255);
Как задать цвет фона?
Задать цвет фона можно методом setBackground:
mainFrame.setBackground(Color.white);
Как нарисовать прямоугольник?
Методом drawRect класса Graphics:
g.drawRect(20, 40, 340, 20);
20, 40 — это координаты верхнего левого угла прямоугольника;
340 — длина;
20 — высота прямоугольника.
Как залить прямоугольник цветом?
Методом fillRect класса Graphics:
newColor = new Color(0, 215, 255);
g.setColor(newColor);
g.fillRect(21, 41, 339, 19);
g.setColor(oldColor);
Красивый код на Python #айти #shorts
Как нарисовать прямоугольник с закругленными углами?
Методом drawRoundRect класса Graphics.
Сопряжение, т.е. закругление на углах, делается с помощью частей овала.
g.drawRoundRect(20, 70, 340, 30, 20, 15);
первые 4 аргумента как у обычного прямоугольника. Пятый аргумент — 20 — это ширина прямоугольника, в который вписана часть овала сопряжения. Шестой аргумент — 15 — это высота прямоугольника, в который вписана часть овала сопряжения.
Как нарисовать овал?
Методом drawOval класса Graphics:
g.drawOval(20, 110, 150, 60);
Аргументы определяют прямоугольник, в который вписан овал.
Как нарисовать окружность?
Методом drawOval класса Graphics:
g.drawOval(200, 110, 60, 60);
Аргументы определяют прямоугольник, в который вписана окружность. Здесь рисуем овал, но длина и высота описанного прямоугольника равны, что и даёт окружность.
Как нарисовать дугу?
Методом drawArc класса Graphics:
g.drawArc(280, 110, 80, 60, 0, 180);
первые 4 аргумента как у обычного прямоугольника. Пятый аргумент — 0 — это угол, от которого отсчитывается угол самой дуги. 180 — это угол дуги. Углы отсчитывают от горизонтальной оси: по часовой стрелке отрицательное направление, протв — положительное. В примере 180 градусов (величина дуги) отсчитываем от горизонтальной линии.
Как нарисовать многоугольник?
Методом drawPolygon класса Graphics:
Здесь создаём объект класса Polygon. arrayX — это х-координаты вершин многоугольника, arrayY — это y-координаты вершин многоугольника, 8 — число вершин многоугольника.
Как создать объект точки?
Для этого используем класс Point:
Point aPoint = new Point(50, 190);
аргументы — это x, y координаты.
Как определить, что точка принадлежит многоугольнику?
Используем метод класса Polygon contains для определения лежит ли точка в многоугольнике.
Как вывести строку?
Методом drawString класса Graphics:
g.drawString(«Yes», 50, 190);
строка «Yes» будет выведена от точки с координатами 50, 190.
Как задать шрифт?
Для этого используем класс Font:
Font font = new Font(«Tahoma», Font.BOLD|Font.ITALIC, 40);
где «Tahoma» — название шрифта,
Font.BOLD|Font.ITALIC — жирный шрифт с наклоном,
40 — высота шрифта.
После задания шрифта мы делаем его текущим и выводим строку этим шрифтом:
g.setFont(font);
g.drawString(«SBP», 270, 220);
Как задать цвет текста?
Чтоб задать цвет текста создадим и установим в графический контекст новый цвет:
newColor = new Color(0, 0, 255);
g.setColor(newColor);
Здесь мы создали чисто синий цвет. А теперь выводим строку синим цветом:
g.drawString(«SBP», 270, 220);
Как начертить график?
Как график функции начертить? Сначала начертим координатные оси:
// 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 — это число точек.
Наш график являет собой кривую намагничивания. Но почему график такой угловатый (см. картинку выше)? Если взять больше точек, то график будет более плавным.
Источник: sbp-program.ru
Графика в Си.
В графическом режиме в Си можно отображать на экране различные фигуры, строить изображения, реализовывать анимацию и компьютерные игры.
Чтобы работать в графическом режиме в Си, необходимо перейти в графический режим, инициализировав графическое окно си initwindow ( ширина окна, высота окна ); в котором и будут рисоваться изображения. После завершения работы с графикой, необходимо выйти из графического режима с помощью команды closegraph();
Структура программы с графикой в Си.
#include // подключение заголовочного файла с графическими функциями
#include
main()
initwindow ( 500, 500 ); // инициализировали и открыли окно размером 500 на 500
…рисуем графические объекты
getch(); // ждем нажатия клавиши
closegraph(); // закрываем графический режим
>
Основные графические объекты в си, такие как точка, линия, окружность, прямоугольник задаются с помощью системы координат. Система координат в графическом режиме Си задается следующим образом. Верхний левый угол экрана имеет координату x=0 и y=0.
Координата X задается слева направо. Т.е. чем больше X, тем правее точка.
Координата Y задается сверху вниз. Т.е. чем больше Y, тем ниже точка.
Максимальные X это ширина окна. Максимальное Y это высота окна.
Задание цвета изображения в Си
Чтобы задать цвет изображаемого объекта, используется оператор setcolor(номер цвета);
Таблица цветов в Си.
0 черный
1 синий
2 зеленый
3 морской волны
4 красный
5 фиолетовый
6 коричневый
7 светло-серый
8 темно-серый
9 светло-синий
10 светло-зеленый
11 светлый морской волны
12 светло-красный
13 светло-фиолетовый
13 светло-фиолетовый
14 желтый
15 белый
setcolor(4) ;// устанавливаем красный цвет
Отображение точки в Си.
Для рисования точки в графических программах си используется оператор
Вернуться к содержанию Перейти к следующему уроку Случайные числа в Си
Источник: itrobo.ru
Работа с графикой (C++/CLI)
Демонстрирует управление изображениями с помощью Windows SDK.
В следующих разделах показано использование класса для выполнения операций System.Drawing.Image с изображениями.
Отображение изображений с помощью платформа .NET Framework
В следующем примере кода изменяется обработчик событий OnPaint, чтобы получить указатель на Graphics объект для формы main. Функция OnPaint предназначена для приложения Windows Forms, скорее всего, созданного с помощью мастера приложений Visual Studio.
Изображение представлено классом Image . Данные изображения загружаются из файла .jpg с помощью System.Drawing.Image.FromFile метода . Перед тем как изображение будет отрисовано в форме, размер формы изменяется в соответствии с изображением. Рисование изображения выполняется с помощью System.Drawing.Graphics.DrawImage метода .
Классы Graphics и Image находятся в System.Drawing пространстве имен .
Пример
#using using namespace System; using namespace System::Drawing; protected: virtual Void Form1::OnPaint(PaintEventArgs^ pe) override < Graphics^ g = pe->Graphics; Image^ image = Image::FromFile(«SampleImage.jpg»); Form::ClientSize = image->Size; g->DrawImage( image, 0, 0, image->Size.Width, image->Size.Height ); >
Рисование фигур с помощью платформа .NET Framework
В следующем примере кода класс используется Graphics для изменения обработчика OnPaint событий, чтобы получить указатель на Graphics объект для формы main. Затем этот указатель используется для задания цвета фона формы и рисования линии и дуги с помощью System.Drawing.Graphics.DrawLine методов и DrawArc .
Пример
#using using namespace System; using namespace System::Drawing; // . protected: virtual Void Form1::OnPaint(PaintEventArgs^ pe ) override < Graphics^ g = pe->Graphics; g->Clear(Color::AntiqueWhite); Rectangle rect = Form::ClientRectangle; Rectangle smallRect; smallRect.X = rect.X + rect.Width / 4; smallRect.Y = rect.Y + rect.Height / 4; smallRect.Width = rect.Width / 2; smallRect.Height = rect.Height / 2; Pen^ redPen = gcnew Pen(Color::Red); redPen->Width = 4; g->DrawLine(redPen, 0, 0, rect.Width, rect.Height); Pen^ bluePen = gcnew Pen(Color::Blue); bluePen->Width = 10; g->DrawArc( bluePen, smallRect, 90, 270 ); >
Поворот изображений с помощью платформа .NET Framework
В следующем примере кода демонстрируется использование System.Drawing.Image класса для загрузки образа с диска, его поворота на 90 градусов и сохранения в виде нового файла .jpg.
Пример
#using using namespace System; using namespace System::Drawing; int main() < Image^ image = Image::FromFile(«SampleImage.jpg»); image->RotateFlip( RotateFlipType::Rotate90FlipNone ); image->Save(«SampleImage_rotated.jpg»); return 0; >
Преобразование форматов файлов изображений с помощью платформа .NET Framework
В следующем примере кода демонстрируется System.Drawing.Image класс и перечисление System.Drawing.Imaging.ImageFormat , используемые для преобразования и сохранения файлов изображений. Следующий код загружает изображение из файла .jpg, а затем сохраняет его в .gif и .bmp форматах файлов.
Пример
#using using namespace System; using namespace System::Drawing; using namespace System::Drawing::Imaging; int main() < Image^ image = Image::FromFile(«SampleImage.jpg»); image->Save(«SampleImage.png», ImageFormat::Png); image->Save(«SampleImage.bmp», ImageFormat::Bmp); return 0; >
Источник: learn.microsoft.com