Питон рисование фигур по координатам

Графика в Python

Графика в Python.

С помощью графики в Python можно рисовать фигуры и изображения, создавать анимацию, визуализировать математические вычисления в Python. В программах python можно использовать элементы графики в компьютерных играх.
Для работы с графикой в Python нужно импортировать модуль graphics.py. Как установить модуль graphics в Python.
Чтобы начать работу с графикой в Python, нужно создать окно для графики
Графический объект = GraphWin(«Название окна для графики», ширина окна для графики в пикселях, высота окна для графики в пикселях)
GraphWin это ключевое слово, которое задаёт окно графической области, в котором будут отображаться графические объекты.
В качестве параметров этой функции указывается название окон для графики, ширина и высота окон в пикселях.
После запуска программы откроется окно для графики, где будут отображаться графические объекты.
Вся работа с графикой будет осуществляться нами через графические объекты.
Общая структура работы с графическими объектами в Python
Графический_объект.Вызов_команды()
Общая структура графической программы в Python.
# импортируем библиотеку graphics
from graphics import *
# создаём окно для графики
win = GraphWin(«Окно для графики», 400, 400)
# . рисуем все объекты.
win.getMouse() # ждём нажатия кнопки мыши
win.close() # закрываем окно для графики
В этой программе мы определили объект графическое окно win и открыли его с размерами 400 на 400 пикселей.
Команда win.getMouse() ожидает нажатие на любую кнопку мыши, наведённую на область окна win.
win.close() закрывает окно для графических объектов win.
С помощью модуля graphics.py в программах на Python можно отобразить точку, линию, окружность, прямоугольник, эллипс и многоугольник, вывести текст на экран.
Чтобы задать расположение объекта в графическом окне Python, необходимо указать его координаты в системе координат Python. Начало координат находится в левом верхнем углу окна для графики.
Положительное направление оси X определяется слева направо, оси Y определяется сверху вниз. Чем больше значение координаты X, тем правее точка, чем больше значение координаты Y, тем точка ниже. Чтобы нарисовать заданный объект obj в окне для графики win, нужно использовать процедуру obj.draw(win)
Перед тем, как рисовать графические объекты в заданном графическом окне, нужно их задать.
Для задания точки в Python используется функция Point(x, y)
obj = Point(x, y)
x, y – координаты точки.
Пример программы на Python, которая задаёт и отображает точку в графическом окне.
from graphics import * # импортируем библиотеку graphics
win = GraphWin(«Окно для графики», 400, 400) # создаём окно для графики размером 400 на 400 пикселей
obj = Point(50, 50) # создаём точку в координатах (50, 50)
obj.draw(win) # отображаем точку в окне для графики
win.getMouse() # ждём нажатия кнопки мыши
win.close() # закрываем окно для графики
Для задания отрезка в Python используется функция Line(объект точка первого конца, объект точка второго конца)
obj = Line(Point(x1, y1), Point(x2, y2))
x1, y1 – координаты начала отрезка линии,
x2, y2 – координаты конца отрезка линии.

Читайте также:  Рисование тычком ватными палочками пальчиками

Чтобы задать цвет рисования линий в Python используется команда obj.setOutline(«цвет»)
Пример программы на Python, которая отображает линию в графическом окне.
from graphics import *
win = GraphWin(«Окно для графики», 400, 400)
obj = Line(Point(50, 50), Point(350, 350))
obj.setOutline(«blue»)
obj.draw(win)
win.getMouse()
win.close()
Для отображения окружности в Python используется
obj = Circle(Point(x, y), R)
x, y – координаты центра окружности,
R – радиус окружности.
Пример программы на Python, которая отображает окружность в графическом окне.
from graphics import *
win = GraphWin(«Окно для графики», 400, 400)
obj = Circle(Point(200, 200), 50)
obj.draw(win)
win.getMouse()
win.close()
Для отображения прямоугольника в Python используется процедура
obj = Rectangle(Point(x1, y1), Point(x2, y2))
x1, y1 – координаты левого верхнего угла прямоугольника,
x2, y2 – координаты правого нижнего угла прямоугольника
Пример программы на Python, которая отображает прямоугольник в графическом окне.
from graphics import *
win = GraphWin(«Окно для графики», 300, 300)
obj = Rectangle(Point(50, 50), Point(200, 250))
obj.draw(win)
win.getMouse()
win.close()


Для отображения эллипса в Python используется процедура
obj = Oval(Point(x1, y1), Point(x2, y2))
x1, y1 – координаты первого фокуса эллипса,
x2, y2 – координаты второго фокуса эллипса.
Пример программы на Python, которая отображает эллипс в графическом окне.
from graphics import *
win = GraphWin(«Окно для графики», 300, 300)
obj = Oval(Point(100, 100), Point(250, 200))
obj.draw(win)
win.getMouse()
win.close()


Для отображения многоугольника в Python используется процедура
obj = Polygon(Point(x1, y1), Point(x2, y2),…, Point(xn, yn))
x1, y1, x2, y2,…, xn, yn – координаты вершин многоугольника.
Пример программы на Python, которая отображает пятиугольник в графическом окне.
from graphics import *
win = GraphWin(«Окно для графики», 400, 400)
obj = Polygon(Point(10, 10), Point(300, 50), Point(200, 300), Point(150, 150), Point(70, 70))
obj.draw(win)
win.getMouse()
win.close()

Определение цвета закрашивания графического объекта в Python

Чтобы задать цвет закрашивания графического объекта в python используется команда obj.setFill(«цвет»)

Читайте также:  Проект про нетрадиционные техники рисования

Пример программы на Python, которая рисует закрашенную синюю окружность

from graphics import *
win = GraphWin(«Окно для графики», 400, 400)
obj = Circle(Point(200, 200), 50)
obj.setFill(«blue»)
obj.draw(win)
win.getMouse()
win.close()

Для редактирования границ объектов в Python используются процедуры setOutline(“цвет границы”) и
setWidth(ширина границы).
obj.setOutline(«blue») – объект obj отображается с границей синего цвета.
obj.setWidth(5) – объект obj отображается с шириной границы 5 пикселей.
По умолчанию графический объект в Python будет отображаться с границами чёрного цвета шириной 1 пиксель.
Пример программы на Python, которая отображает фигуру с синей границей и заливкой в графическом окне.
from graphics import *
win = GraphWin(«Окно для графики», 310, 310)
obj = Polygon(Point(10, 10), Point(300, 50), Point(200, 300), Point(150, 150), Point(70, 70))
obj.setOutline(«blue»)
obj.setWidth(5)
obj.setFill(«cyan»)
obj.draw(win)
win.getMouse()
win.close()


Чтобы переместить графический объект в Python, используется процедура move(dx, dy) , которая перемещает объект на dx пикселей вправо и dy пикселей вниз.
obj.move(50, 50) смещает объект obj на 50 пикселей вправо и 50 пикселей вниз.
Для клонирования объектов используется процедура clone()
newObj = obj.clone()
С помощью этой команды создаётся новый графический объект newObj, который идентичен объекту obj.
Для удаления фигур с экрана используется процедура undraw() Объект удаляется с графического окна, но не удаляется из памяти.
obj.undraw()
Пример программы на Python, которая удаляет, перемещает и копирует объект в графическом окне.
from graphics import *
win = GraphWin(«Окно для графики», 400, 400)
obj = Polygon(Point(30, 10), Point(30, 50), Point(20, 30), Point(15, 30), Point(7, 7))
obj.setOutline(«blue»)
obj.setWidth(2)
obj.setFill(«cyan»)
obj.draw(win)
win.getMouse()
obj.undraw()
win.getMouse()
obj.draw(win)
obj.move(100, 100)
win.getMouse()
shape = obj.clone()
shape.move(-100, -100)
shape.draw(win)
win.getMouse()
win.close()
Для создания текста в графическом окне в Python используется команда

текстовый объект= Text(координаты точки размещения текста, “Текст”)
msg = Text(Point(50, 100), “Hello World!”)
На экран в точке с координатами (50, 100) выведется текст со строкой Hello World!
Для изменения размера текста используется команда текстовый объект.setSize(размер текста)
msg.setSize(12)
Цвет текста изменяется с помощью метода setTextColor(цвет)
msg.setTextColor(“black”)
Текст в графическом объекте можно заменить с помощью метода setText(“Текст”)
msg.setText(“Другой текст”)
Стиль текста изменяется с помощью процедуры setStyle(стиль)
msg.setStyle(“bold”)
Стиль normal изменяет стиль текста на обычный, bold меняет стиль на полужирный, italic меняет стиль на курсив, bold italic меняет стиль текста на полужирный курсив.
Пример программы на Python, которая отображает текст в графическом окне.
from graphics import *
win = GraphWin(«Окно для графики», 400, 400)
obj = Polygon(Point(10, 10), Point(300, 50), Point(200, 300), Point(150, 150), Point(70, 70))
obj.setOutline(«blue»)
obj.setWidth(5)
obj.setFill(«cyan»)
obj.draw(win)
win.getMouse()
obj.undraw()
msg = Text(Point(200, 200), «Фигура удалилась с экрана»)
msg.setSize(12)
msg.setTextColor(«black»)
msg.setStyle(«bold italic»)
msg.draw(win)
win.getMouse()
win.close()

Вернуться к содержанию Следующая тема Графика turtle черепашка в питон

Источник

Matplotlib. Урок 5. Построение 3D графиков. Работа с mplot3d Toolkit

До этого момента все графики, которые мы строили были двумерные, Matplotlib позволяет строить 3D графики. Этой теме посвящен данный урок.

Импортируем необходимые модули для работы с 3D :

В библиотеке доступны инструменты для построения различных типов графиков. Рассмотрим некоторые из них более подробно.

Линейный график

Для построения линейного графика используется функция plot().

Axes3D.plot(self, xs, ys, *args, zdir=’z’, **kwargs)

  • xs : 1D массив
    • x координаты.
  • ys : 1D массив
    • y координаты.
  • zs : скалярное значение или 1D массив
    • z координаты. Если передан скаляр, то он будет присвоен всем точкам графика.
  • zdir:
    • Определяет ось, которая будет принята за z направление, значение по умолчанию: ‘z’ .
  • **kwargs
    • Дополнительные аргументы, аналогичные тем, что используются в функции plot() для построения двумерных графиков.

Точечный график

Для построения точечного графика используется функция scatter() .

Axes3D.scatter(self, xs, ys, zs=0, zdir=’z’, s=20, c=None, depthshade=True, *args, **kwargs)

  • xs, ys : массив
    • Координаты точек по осям x и y .
  • zs : float или массив, optional
    • Координаты точек по оси z . Если передан скаляр, то он будет присвоен всем точкам графика. Значение по умолчанию: 0.
  • zdir: <‘x’, ‘y’, ‘z’, ‘-x’, ‘-y’, ‘-z’>, optional
    • Определяет ось, которая будет принята за z направление, значение по умолчанию: ‘z’
  • s : скаляр или массив, optional
    • Размер маркера. Значение по умолчанию: 20.
  • c : color , массив, массив значений цвета, optional
    • Цвет маркера. Возможные значения:
      • Строковое значение цвета для всех маркеров.
      • Массив строковых значений цвета.
      • Массив чисел, которые могут быть отображены в цвета через функции cmap и norm .
      • 2D массив, элементами которого являются RGB или RGBA .
  • depthshade: bool, optional
    • Затенение маркеров для придания эффекта глубины.
  • **kwargs
    • Дополнительные аргументы, аналогичные тем, что используются в функции scatter() для построения двумерных графиков.

Каркасная поверхность

Для построения каркасной поверхности используется функция plot_wireframe() .

plot_wireframe(self, X, Y, Z, *args, **kwargs)

  • X, Y, Z: 2D массивы
    • Данные для построения поверхности.
  • rcount, ccount: int
    • Максимальное количество элементов каркаса, которое будет использовано в каждом из направлений. Значение по умолчанию: 50.
  • rstride, cstride: int
    • Параметры определяют величину шага, с которым будут браться элементы строки / столбца из переданных массивов. Параметры rstride , cstride и rcount , ccount являются взаимоисключающими.
  • **kwargs
    • Дополнительные аргументы, определяемые Line3DCollection .

Поверхность

Для построения поверхности используйте функцию plot_surface().

plot_surface(self, X, Y, Z, *args, norm=None, vmin=None, vmax=None, lightsource=None, **kwargs)

  • X, Y, Z : 2D массивы
    • Данные для построения поверхности.
  • rcount, ccount : int
    • см. rcount , ccount в “Каркасная поверхность“.
  • rstride, cstride : int
    • см. rstride , cstride в “Каркасная поверхность“.
  • color: color
    • Цвет для элементов поверхности.
  • cmap : Colormap
    • Colormap для элементов поверхности.
  • facecolors : массив элементов color
    • Индивидуальный цвет для каждого элемента поверхности.
  • norm : Normalize
    • Нормализация для colormap .
  • vmin, vmax: float
    • Границы нормализации.
  • shade: bool
    • Использование тени для facecolors . Значение по умолчанию: True.
  • lightsource : LightSource
    • Объект класса LightSource – определяет источник света, используется, только если shade = True .
  • **kwargs
    • Дополнительные аргументы, определяемые Poly3DCollection .

P.S.

Вводные уроки по “Линейной алгебре на Python” вы можете найти соответствующей странице нашего сайта . Все уроки по этой теме собраны в книге “Линейная алгебра на Python”.

Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. Для начала вы можете познакомиться с вводными уроками. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.

Источник

Оцените статью