Координатная сеткаDelphi , Графика и Игры , CanvasКоординатная сеткаunit grid_; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) procedure FormPaint(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormPaint(Sender: TObject); var x0, y0: integer; // координаты начала координатных осей dx, dy: integer; // шаг координатной сетки (в пикселях) h, w: integer; // высота и ширина области вывода координатной сетки x, y: integer; lx, ly: real; // метки (оцифровка) линий сетки по X Y dlx, dly: real; // шаг меток (оцифровки) линий сетки по X и Y cross: integer; // счетчик не оцифрованных линий сетки dcross: integer; // количество не оцифрованных линий между оцифрованными begin x0 := 30; y0 := 220; // оси начинаются в точке (40,250) dx := 40; dy := 40; // шаг координатной сетки 40 пикселей dcross := 1; // помечать линии сетки X: 1 - каждую; // 2 - через одну; // 3 - через две; dlx := 0.5; // шаг меток оси X dly := 1.0; // шаг меток оси Y, метками будут: 1, 2, 3 и т.д. h := 200; w := 300; with form1.Canvas do begin cross := dcross; MoveTo(x0, y0); LineTo(x0, y0 - h); // ось X MoveTo(x0, y0); LineTo(x0 + w, y0); // ось Y // засечки, сетка и оцифровка по оси X x := x0 + dx; lx := dlx; repeat MoveTo(x, y0 - 3); LineTo(x, y0 + 3); // засечка cross := cross - 1; if cross = 0 then //оцифровка begin TextOut(x - 8, y0 + 5, FloatToStr(lx)); cross := dcross; end; Pen.Style := psDot; MoveTo(x, y0 - 3); LineTo(x, y0 - h); // линия сетки Pen.Style := psSolid; lx := lx + dlx; x := x + dx; until (x > x0 + w); // засечки, сетка и оцифровка по оси Y y := y0 - dy; ly := dly; repeat MoveTo(x0 - 3, y); LineTo(x0 + 3, y); // засечка TextOut(x0 - 20, y, FloatToStr(ly)); // оцифровка Pen.Style := psDot; MoveTo(x0 + 3, y); LineTo(x0 + w, y); // линия сетки Pen.Style := psSolid; y := y - dy; ly := ly + dly; until (y < y0 - h); end; end; end. Перевод контента на русский язык: Код - это проект Delphi, который создает систему координат с пометками осей для отображения данных. Система координат имеет регулируемые параметры, такие как начальные координаты, шаг размеров сетки и расстояние между пометками на осях. Вот разбивка кода:
Код хорошо структурирован, и комментарии обеспечивают ясное объяснение переменных. Однако есть некоторые улучшения, которые можно сделать:
В целом, этот код предоставляет солидную основу для создания системы координат с пометками осей и может быть улучшен для соответствия конкретным требованиям и нуждам. В статье рассматривается реализация координатной сетки на графической форме при помощи Delphi, включающая в себя расстановку осей, засечек и оцифровку линий сетки. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |