Построение окружности в delphi

DelphiComponent.ru — бесплатно видеоуроки по Delphi, статьи, исходники

Построение окружности в delphi

Графические возможности Delphi: Текст, линия, окружность

Видео:Построение графиков функции в Delphi часть 1Скачать

Построение графиков функции в Delphi часть 1

Вывод текста

  • объект — имя объекта, на поверхность которого выводится текст;
  • х, у — координаты точки графической поверхности, от которой выполняется вывод текста (рис. 10.3);
  • Текст — переменная или константа символьного типа, значение которой определяет выводимый методом текст.

Шрифт, который используется для вывода текста, определяется значением свойства Font соответствующего объекта Canvas. Свойство Font представляет собой объект типа TFont. В табл. 10.7 перечислены свойства объекта TFont, позволяющие задать характеристики шрифта, используемого методами Textout и TextRect для вывода текста.

Таблица 10.7. Свойства объекта TFont

Построение окружности в delphi

Построение окружности в delphi

Внимание!

Область вывода текста закрашивается текущим цветом кисти. Поэтому перед выводом текста свойству Brush.Color нужно присвоить значение bsciear или задать цвет кисти, совпадающий с цветом поверхности, на которую выводится текст.

Следующий фрагмент программы демонстрирует использование функции TextQut для вывода текста на поверхность формы:

with Form1 . Canvas do

После вывода текста методом Textout указатель вывода (карандаш) перемещается в правый верхний угол области вывода текста.

Иногда требуется вывести какой-либо текст после сообщения, длина которого во время разработки программы неизвестна. Например, это может быть слово «руб.» после значения числа, записанного прописью. В этом случае необходимо знать координаты правой границы уже выведенного текста. Координаты правой границы текста, выведенного методом Textout, можно получить, обратившись к свойству EenPos.

Следующий фрагмент программы демонстрирует возможность вывода строки текста при помощи двух инструкций Textout.

with Form1 . Canvas do

Видео:График линейной функции на Делфи | | Программирование на DelphiСкачать

График линейной функции на Делфи | | Программирование на Delphi

Линия

Вычерчивание прямой линии осуществляет метод LineTo, инструкция вызова которого в общем виде выглядит следующим образом:

Метод LineTo вычерчивает прямую линию от текущей позиции карандаша в точку с координатами, указанными при вызове метода.

Начальную точку линии можно задать, переместив карандаш в нужную точку графической поверхности. Сделать это можно при помощи метода MoveTo, указав в качестве параметров координаты нового положения карандаша.

Вид линии (цвет, толщина и стиль) определяется значениями свойств объекта Реп графической поверхности, на которой вычерчивается линия.

Довольно часто результаты расчетов удобно представить в виде графика. Для большей информативности и наглядности графики изображают на фоне координатных осей и оцифрованной сетки. В листинге 10.2 приведен текст программы, которая на поверхность формы выводит координатные оси и оцифрованную сетку (рис. 10.4).

Рис. 10.4, Форма приложения Координатная сетка

Построение окружности в delphi

Листинг 10.2. Оси координат и оцифрованная сетка

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

Видео:Программирование в Delphi / Урок 1. Знакомство со средой разработки. Приложение "Привет, мир!"Скачать

Программирование в Delphi / Урок 1. Знакомство со средой разработки. Приложение "Привет, мир!"

Ломаная линия

Метод Polyline вычерчивает ломаную линию. В качестве параметра метод получает массив типа Tpoint. Каждый элемент массива представляет собой запись, поля х и у которой содержат координаты точки перегиба ломаной. Метод Polyline вычерчивает ломаную линию, последовательно соединяя прямыми точки, координаты которых находятся в массиве: первую со второй, вторую с третьей, третью с четвертой и т. д.

В качестве примера использования метода Polyline в листинге Ю.З приведена процедура, которая выводит график изменения некоторой величины. Предполагается, что исходные данные находятся в доступном процедуре Массиве Data (ТИП Integer).

Листинг 10.3. График функции (использование метода Polyline)

Метод Polyline можно использовать для вычерчивания замкнутых контуров.

Для этого надо, чтобы первый и последний элементы массива содержали координаты одной и той же точки. В качестве примера использования метода PoiyLine для вычерчивания замкнутого контура в листинге 10.4 приведена программа, которая на поверхности диалогового окна, в точке нажатия кнопки мыши, вычерчивает контур пятиконечной звезды (рис. 10.5). Цвет, которым вычерчивается звезда, зависит от того, какая из кнопок мыши была нажата. Процедура обработки нажатия кнопки мыши (событие MouseDown).

вызывает процедуру рисования звезды starLine и передает ей в качестве параметра координаты точки, в которой была нажата кнопка. Звезду вычерчивает процедура starLine, которая в качестве параметров получает координаты центра звезды и холст, на котором звезда должна быть выведена. Сначала вычисляются координаты концов и впадин звезды, которые записываются в массив р. Затем этот массив передается в качестве параметра методу Polyline. При вычислении координат лучей и впадин звезды используются функции sin и cos. Так как аргумент этих функций должен быть выражен в радианах, то значение угла в градусах домножается на величину pi/180, где pi — это стандартная именованная константа равная числу пи.

Листинг 10,4. Вычерчивание замкнутого контура (звезды) в точке нажатия кнопки мыши

Видео:Программирование в Delphi Урок 3 2 Работа с текстом, строковые функции Length, Pos и другиеСкачать

Программирование в Delphi Урок 3   2  Работа с текстом, строковые функции Length, Pos и другие

KML Reference в Delphi по-русски #8: Как нарисовать круг в KML?

Если вы использовали когда-нибудь Google Earth, то могли обратить внимание на то, что инструменты для рисования своих объектов, даже в Pro-версии достаточно ограничены. Можно нарисовать линию, полигон, кривую, поставить метку, но, что касается других фигур, например тех же кругов и окружностей, то здесь Google Earth нам ничем помочь не может – надо по точкам самому вырисовывать необходимый элемент. Однако, используя возможности KML нарисовать круг в Google Earth, как оказалось, не так уж и сложно. Именно этим мы сегодня и займемся – научимся рисовать круг заданного размера в Google Earth, используя KML в Delphi.

Вводная часть

Что касается того, как нарисовать круг в Delphi, в принципе, то тут, думаю ни у кого, кроме новичков вопросов нет. Есть Canvas.Ellipse, можно нарисовать (если уж сильно приспичит) по-пиксельно, воспользовавшись формулами поворота относительно начала координат. При этом, работаем мы в декартовой системе координат, которая известна всем ещё со школы.

Что же касается Google Earth и KML, то здесь мы имеем дело с системой WGS-84 – всемирной системой геодезических параметров Земли 1984 года, в число которых входит система геоцентрических координат. И задача рисования круга или окружности становится не такой уж и тривиальной.

Надо сказать, что этой задачей я занимался примерно год назад, когда только начинал разбираться с тем, как преобразовывать географические координаты из одной системы координат в другую, например, из WGS-84 в ПЗ-90, из WGS-84 в обычную декартову систему координат с заданной точкой “привязки” и так далее. Перерыл тогда много всяких интересных форумов по этому вопросу и точно помню, что ответ в виде исходника на Pascal был найден на форуме http://geodesist.ru/, но вот точную ссылку, к сожалению, потерял.

Поэтому говорю как есть: исходный код, в котором рассчитываются географические координаты при повороте точки – не мой. Он взят с форума “Геодезист“. Буду признателен, если кто-нибудь в комментариях кинет ссылочку на тему форума, где этот код подробно рассматривался.

Круг и окружность в KML

В одной из статей, посвященных KML в Delphi, мы учились рисовать различные элементы на карте. В числи прочих, мы рисовали так называемый полигон (Polygon), который состоит из одной или нескольких замкнутых линий (LinearRing). Именно этот элемент KML и и будем использовать в качестве базового для того, чтобы нарисовать круг или окружность в KML.

Ну, а чтобы сделать из круга окружность и наоборот, мы воспользуемся возможностями стиля PolyStyle – если наш полигон будет использовать заливку, то на карте будет изображен круг, если нет – окружность. Всё просто 🙂

Что нам необходимо, чтобы нарисовать окружность? Во-первых, нам необходимы координаты центра. Во-вторых, нам необходим радиус окружности (R). Далее, нам необходимо “поставить” на карте точку, которая будет находится на расстоянии R от центра и поворачивать эту точку на угол от 0 до 360 градусов, сохраняя каждый раз координаты точки в списке координат, который мы и передадим нашему полигону в качестве внешней границы. При этом, направление поворота роли не сыграет (в случае рисования окружности).

Теперь реализуем всё, что сказано выше в виде кода Delphi.

Класс TKmlCircle можно представить следующим образом:

Видео:Зачем учиться программировать на DelphiСкачать

Зачем учиться программировать на Delphi

Построение окружности в delphi

Глава 10. Графические возможности Delphi

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

Программа выводит графику на поверхность объекта (формы или компонента Image). Поверхности объекта соответствует свойство canvas. Для того чтобы вывести на поверхность объекта графический элемент (прямую линию, окружность, прямоугольник и т. д.), необходимо применить к свойству canvas этого объекта соответствующий метод. Например, инструкция Form1.Canvas.Rectangle (10,10,100,100) вычерчивает в окне программы прямоугольник.

Как было сказано ранее, поверхности, на которую программа может выводить графику, соответствует свойство Canvas. В свою очередь, свойство canvas — это объект типа TCanvas. Методы этого типа обеспечивают вывод графических примитивов (точек, линий, окружностей, прямоугольников и т. д.), а свойства позволяют задать характеристики выводимых графических примитивов: цвет, толщину и стиль линий; цвет и вид заполнения областей; характеристики шрифта при выводе текстовой информации.

Методы вывода графических примитивов рассматривают свойство Canvas как некоторый абстрактный холст, на котором они могут рисовать (canvas переводится как «поверхность», «холст для рисования»). Холст состоит из отдельных точек — пикселов. Положение пиксела характеризуется его горизонтальной (X) и вертикальной (Y) координатами. Левый верхний пиксел имеет координаты (0, 0). Координаты возрастают сверху вниз и слева направо (рис. 10.1). Значения координат правой нижней точки холста зависят от размера холста.

Построение окружности в delphi

Рис. 10.1. Координаты точек холста

Размер холста можно получить, обратившись к свойствам Height и width области иллюстрации (image) или к свойствам формы: ClientHeight и Clientwidth.

Художник в своей работе использует карандаши и кисти. Методы, обеспечивающие вычерчивание на поверхности холста графических примитивов, тоже используют карандаш и кисть. Карандаш применяется для вычерчивания линий и контуров, а кисть — для закрашивания областей, ограниченных контурами.

Карандашу и кисти, используемым для вывода графики на холсте, соответствуют свойства Реn (карандаш) и Brush (кисть), которые представляют собой объекты типа треп и TBrush, соответственно. Значения свойств этих объектов определяют вид выводимых графических элементов.

Карандаш используется для вычерчивания точек, линий, контуров геометрических фигур: прямоугольников, окружностей, эллипсов, дуг и др. Вид линии, которую оставляет карандаш на поверхности холста, определяют свойства объекта треп, которые перечислены в табл. 10.1.

Таблица 10.1. Свойства объекта треп (карандаш)

📽️ Видео

Delphi мертв?Скачать

Delphi мертв?

Аксонометрические Проекции Окружности #черчение #окружность #проекции #изометрияСкачать

Аксонометрические Проекции Окружности  #черчение #окружность #проекции #изометрия

Курсы программирования. Урок 6. Математические функции DelphiСкачать

Курсы программирования. Урок 6. Математические функции Delphi

Изображение окружности в перспективе. Эллипс.Скачать

Изображение окружности в перспективе. Эллипс.

1 2 4 сопряжение окружностейСкачать

1 2 4  сопряжение окружностей

Delphi - работа с графикой (canvas)Скачать

Delphi - работа с графикой (canvas)

Использование класса TChart для построения графиков функцийСкачать

Использование класса TChart для построения графиков функций

Урок 1 Создание формы, запуск второй формы (DELPHI FastReport) | Виктор ВосоновСкачать

Урок 1 Создание формы, запуск второй формы (DELPHI FastReport) | Виктор Восонов

Урок на делфи - 11. Массивы это простоСкачать

Урок на делфи - 11. Массивы это просто

Построение окружности в диметрииСкачать

Построение окружности в диметрии

Как рисовать фигуры и картинки через код в Delphi (Без Image) | [Коротко о Canvas]Скачать

Как рисовать фигуры и картинки через код в Delphi (Без Image) | [Коротко о Canvas]

Программирование в Delphi Урок 8. Компоненты Главное меню и диалоговые окнаСкачать

Программирование в Delphi Урок 8. Компоненты Главное меню и диалоговые окна

Деление окружности на равные части. Урок 6. (Часть 1. ГЕОМЕТРИЧЕСКИЕ ПОСТРОЕНИЯ)Скачать

Деление окружности на равные части. Урок 6. (Часть 1. ГЕОМЕТРИЧЕСКИЕ ПОСТРОЕНИЯ)
Поделиться или сохранить к себе: