Как нарисовать треугольник в python
Перейти к содержимому

Как нарисовать треугольник в python

Занимательные фигуры на Python в одну строку

Однострочники подобны коанам в Дзэн-буддизме. Как и коаны, некоторые однострочники можно охарактеризовать как «выражения ставящие мозг в тупик». Сами по себе они не научат программировать, но при накопленном определённом опыте позволят постичь всю силу и красоту языка программирования Пайтон.

Существует поверье — если созерцать непонятный однострочник, рано или поздно наступит «просветление».

turtle — Turtle graphics¶

Turtle graphics is a popular way for introducing programming to kids. It was part of the original Logo programming language developed by Wally Feurzeig, Seymour Papert and Cynthia Solomon in 1967.

Imagine a robotic turtle starting at (0, 0) in the x-y plane. After an import turtle , give it the command turtle.forward(15) , and it moves (on-screen!) 15 pixels in the direction it is facing, drawing a line as it moves. Give it the command turtle.right(25) , and it rotates in-place 25 degrees clockwise.

Turtle can draw intricate shapes using programs that repeat simple moves.

../_images/turtle-star.png

By combining together these and similar commands, intricate shapes and pictures can easily be drawn.

The turtle module is an extended reimplementation of the same-named module from the Python standard distribution up to version Python 2.5.

It tries to keep the merits of the old turtle module and to be (nearly) 100% compatible with it. This means in the first place to enable the learning programmer to use all the commands, classes and methods interactively when using the module from within IDLE run with the -n switch.

The turtle module provides turtle graphics primitives, in both object-oriented and procedure-oriented ways. Because it uses tkinter for the underlying graphics, it needs a version of Python installed with Tk support.

The object-oriented interface uses essentially two+two classes:

The TurtleScreen class defines graphics windows as a playground for the drawing turtles. Its constructor needs a tkinter.Canvas or a ScrolledCanvas as argument. It should be used when turtle is used as part of some application.

The function Screen() returns a singleton object of a TurtleScreen subclass. This function should be used when turtle is used as a standalone tool for doing graphics. As a singleton object, inheriting from its class is not possible.

All methods of TurtleScreen/Screen also exist as functions, i.e. as part of the procedure-oriented interface.

RawTurtle (alias: RawPen ) defines Turtle objects which draw on a TurtleScreen . Its constructor needs a Canvas, ScrolledCanvas or TurtleScreen as argument, so the RawTurtle objects know where to draw.

Derived from RawTurtle is the subclass Turtle (alias: Pen ), which draws on “the” Screen instance which is automatically created, if not already present.

All methods of RawTurtle/Turtle also exist as functions, i.e. part of the procedure-oriented interface.

The procedural interface provides functions which are derived from the methods of the classes Screen and Turtle . They have the same names as the corresponding methods. A screen object is automatically created whenever a function derived from a Screen method is called. An (unnamed) turtle object is automatically created whenever any of the functions derived from a Turtle method is called.

To use multiple turtles on a screen one has to use the object-oriented interface.

In the following documentation the argument list for functions is given. Methods, of course, have the additional first argument self which is omitted here.

Рисуем круг, прямоугольник, линии и дуги в Python с помощью Pillow. Геометрические фигуры в Python

Pillow – это продвинутая библиотека, позволяющая создавать и обрабатывать изображения. С ее помощью можно, в том числе, рисовать круг, квадрат и прямую линию. Для этого используется модуль ImageDraw . Сегодня мы поговорим подробно о нем.

Как создавать объект Draw в Python?

Если нам надо создать фигуру, необходимо сначала создать объект Image, который будет служить фоном для нашего рисунка. Далее, для создания конкретных фигур мы станем пользоваться объектом Draw .

Перед тем, как начинать работать над созданием объектов, необходимо импортировать модули Image и ImageDraw . А сам код будет таковым.

Этот код создает пустое изображение размером 500 на 300. Также он устанавливает темно-желтый цвет фона.

Как рисовать фигуры в Pillow?

Чтобы осуществлять рисование фигур в Python, необходимо в объекте Draw библиотеки Pillow использовать соответствующие методы рисования. Для начала давайте попробуем нарисовать эллипс, прямоугольник и прямую линию.

Рисуем круг, прямоугольник, линии и дуги в Python с помощью Pillow. Геометрические фигуры в Python

После выполнения этого кода мы получим следующий результат.

Параметры методов рисования – справочник

Да, способы рисования отличаются в зависимости от метода, который используется. Тем не менее, такие параметры являются общими для всех.

Область рисования

Этот параметр обозначается, как xy . С его помощью мы задаем прямоугольную область, которая будет использоваться для рисования новой фигуры.

Есть такие форматы:

Если рисуется линия, многоугольник или точка, то используются множественные координаты вместо двух точек, которые представляют прямоугольную область.

Принцип работы следующий:

  1. Линия. Реализуется с помощью метода line , который связывает точки между собой.
  2. Многоугольник. Чтобы его создать, необходимо использовать метод polygon() . Он работает по похожему принципу, соединяя линиями указанные точки, только в конечном итоге линия должна получиться замкнутой.
  3. Точка. Реализуется с использованием метода point() . Она рисует точку размером в 1 пиксель для каждой точки, которая указывается.

Заполнение фигуры с помощью параметра fill

С помощью параметра fill мы определяем цвет, который будет использоваться для того, чтобы заполнить геометрическую форму.

Здесь на спецификацию формата цвета влияет режим изображения, который указывается для объекта Image.

  1. RGB. В этом случае формируется цветное изображение. В этом случае цвет указывается в формате: красный-зеленый-синий (R,G,B).
  2. L. Генерируется черно-белая геометрическая фигура. Здесь нужно указать одну цифру в пределах от 0 до 255. Допускаются исключительно целочисленные значения.

По умолчанию используется значение None , что означает отсутствие фона фигуры. То есть, она не заполняется никаким цветом, принимая тот фон того участка, что находится под ней.

К слову, цвет можно указать тремя способами: передать его цветом, использовать шестнадцатеричный формат или указать интенсивность красного, зеленого и синего оттенков в палитре RGB.

Учитывайте то, что текстовый формат не предусматривает наличия всех цветов. Перечень тех, которые доступны, ограничен.

Задание цвета границ с использованием параметра outline

Если нужно указать, какого цвета должна быть граница многоугольника, используется параметр outline .

Цвет задается абсолютно так же, как это происходит в случае с параметром fill , который обсуждался ранее. По умолчанию используется значение None . То есть, границы отсутствуют.

Указание толщины границ с использованием параметра width

Нет разницы, какая фигура вами будет рисоваться. Вы всегда имеете возможность задать размер ее границы с помощью этого параметра. Толщина задается в пикселях.

Как рисовать эллипс и прямоугольник в Python?

С помощью метода ellipse() разработчик может нарисовать эллипс. В параметре xy задается место в системе координат, которой будет генерироваться фигура. Если нами будут заданы четыре координаты, соответствующие квадрату, то получится ровный круг.

Давайте попробуем с помощью кругов создать маленький смайлик.

Результат: Рисуем круг, прямоугольник, линии и дуги в Python с помощью Pillow. Геометрические фигуры в Python

Как нарисовать линию, многоугольник и точку в Python?

Предположим, нам надо нарисовать линию. Что для этого нужно сделать? Правильно, использовать функцию line , аргументы которой следующие:

  • xy . Точка по осям абсцисс и ординат. Необходимо, чтобы таких точек было, по крайней мере 2. Точки указываются в скобках, и каждая пара x и y также заключается в скобки ((x1, y1), (x2, y2), (x3, y3)…). Далее линия рисуется таким образом, чтобы соединить все эти точки.
  • width . Здесь указывается ширина линии в пикселях. Учтите, что если ширина линии становится больше и указывать 3 точки или более, то получившаяся фигура будет выглядеть хуже.

Для отрисовки многоугольника используется метод polygon(xy, fill, outline) .

  1. Параметр xy . С его помощью разработчик задает несколько координат нескольких точек. Минимальное количество для образования многоугольника – 3. В этом случае будет нарисован треугольник. Далее эти точки соединяются линиями таким образом, чтобы получилась геометрическая фигура.
  2. fill. Заполнитель, который нами был рассмотрен ранее.
  3. outline. Значение то же самое, что и было описано выше.

Проще всего нарисовать точку. Для этого используется метод point(xy, fill) . Можно рисовать несколько точек, задав несколько координат таким же способом, как было описано выше (через множественные скобки). Одна точка рисуется для каждой пары координат.

Ниже вы можете увидеть примеры рисования этих геометрических фигур. Каждая точка являет собой 1 пиксель. Поэтому их тяжело увидеть, но они все равно нарисованы справа.

Рисуем круг, прямоугольник, линии и дуги в Python с помощью Pillow. Геометрические фигуры в Python

Что нужно для отрисовки дуги, хорды и «пирога» в Pillow?

А теперь давайте рассмотрим пример для рисования дуги, хорды, pieslice . Для рисования фигуры используется параметр xy .

  • Дуга: arc(xy, start, end, fill):
    • Параметры start и end
    • Указание угла дуги в градусах;
    • Начальные и конечные точки дуги связываются прямой линией.
    • Начальные и конечные точки дуги связываются прямой линией с центром круга.

    А теперь приведем пример кода, который рисует картинку, приведенную ниже.

    И такой результат мы получаем в итоге.

    Рисуем круг, прямоугольник, линии и дуги в Python с помощью Pillow. Геометрические фигуры в Python

    Рисование поверх изображения

    Рисовать можно не только по пустому полотну, но уже и по существующему изображению. Для этого необходимо воспользоваться методом open() объекта Image .

    В качестве примера мы воспользуемся изображением создателя Python Гвидо ван Россума.

    Для начала сохраните это изображение у себя.

    Рисуем круг, прямоугольник, линии и дуги в Python с помощью Pillow. Геометрические фигуры в Python

    Рисуем круг, прямоугольник, линии и дуги в Python с помощью Pillow. Геометрические фигуры в Python

    В результате, у нас получится такая картинка.

    Выводы

    Таким образом, реализовать работу с изображениями в Python довольно просто. Достаточно воспользоваться продвинутой библиотекой Pillow, которая отлично справляется с самыми разными задачами, касающимися графики.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *