C# Point Структураси: Тўлиқ Қўлланма ва Код Намуналари

Автор Vurfu, Квт. 07, 2025, 02:42 PM

« попередня та - наступна тема »

Vurfu


C# програмалаш тилида Point структураси Windows Forms ва бошқа график иловаларда кўп ишлатилади. У икки ўлчамли координата тизимида нуқталарни ифодалаш учун фойдаланилади ва System.Drawing номлар фазосида жойлашган. Ушбу мақолада C# даги Point структурасининг асосий хусусиятлари, усуллари ва амалий қўлланишини кўриб чиқамиз. SEO учун оптималлаштирилган ва фойдаланувчилар учун қулай бўлган мазмун тайёрлашга эътибор берамиз.


Point Структураси деган нима?
Point — бу C# даги структура (struct), у координата тизимидаги нуқтани ифодалайди ва иккита асосий хусусиятга эга: X ва Y. Бу хусусиятлар нуқтанинг горизонтал (X) ва вертикал (Y) позицияларини белгилайди. У одатда график интерфейсларда, масалан, формадаги элементларнинг жойлашувини аниқлашда қўлланади.

Асосий хусусиятлари:
  • X: Нуқтанинг горизонтал координатаси (int типи).
  • Y: Нуқтанинг вертикал координатаси (int типи).

Point Структурасини Яратиш
Point объектини яратиш жуда осон. Сиз уни конструктор орқали ёки хусусиятларни алоҳида белгилаш орқали ишлатишингиз мумкин.

Намуна:

using System.Drawing;

Point nuqta = new Point(10, 20);
Console.WriteLine($"X: {nuqta.X}, Y: {nuqta.Y}"); // Натижа: X: 10, Y: 20


Бунда nuqta объекти (10, 20) координатасидаги нуқтани ифодалайди.

Point Билан Ишлаш Учун Асосий Усуллар ва Хусусиятлар
  • Offset: Нуқтани белгиланган миқдорда силжитади.
  • IsEmpty: Нуқтанинг бўш (0, 0) эканини текширади.
  • Equality Operator (==): Икки нуқтанинг тенглигини солиштиради.

Намуна:
Point nuqta1 = new Point(5, 10);
nuqta1.Offset(3, 7); // Нуқтани 3 бирлик ўнгга ва 7 бирлик пастга силжитади
Console.WriteLine($"Yangi nuqta: X: {nuqta1.X}, Y: {nuqta1.Y}"); // Натижа: X: 8, Y: 17

Point nuqta2 = new Point(0, 0);
Console.WriteLine($"Nuqta bo'shmi? {Point.Empty == nuqta2}"); // Натижа: True


Амалий Мисол: Windows Forms да Point Ишлатиш
Point структураси график интерфейсларда элементларнинг позициясини аниқлашда кенг қўлланади. Қуйидаги мисолда Windows Forms да кнопканинг жойлашувини Point ёрдамида ўзгартирамиз.

using System;
using System.Drawing;
using System.Windows.Forms;

class Program : Form
{
    private Button button;

    static void Main()
    {
        Application.Run(new Program());
    }

    public Program()
    {
        button = new Button();
        button.Text = "Мени бос!";
        button.Location = new Point(50, 100); // Кнопка (50, 100) нуқтасида жойлашади
        this.Controls.Add(button);
    }
}


Бу кодда кнопка формада (50, 100) координатасида пайдо бўлади.

Point ва PointF Фарқлари
C# да Point дан ташқари PointF структураси ҳам мавжуд. Уларнинг асосий фарқи шундаки:
  • Point бутун сонлар (int) билан ишлайди.
  • PointF эса касрли сонлар (float) билан ишлайди, бу эса аниқроқ позициялар учун муҳим.

Намуна:
PointF nuqtaF = new PointF(10.5f, 20.3f);
Console.WriteLine($"X: {nuqtaF.X}, Y: {nuqtaF.Y}"); // Натижа: X: 10.5, Y: 20.3


Point Структурасининг Афзалликлари ва Чекловлари
Афзалликлар:
  • Жуда енгил ва тез ишлайди (структура сифатида қиймат типи).
  • График иловаларда кенг қўлланилади.
  • Оддий ва фойдалanishга қулай.

Чекловлар:
  • Фақат бутун сонлар билан ишлайди (PointF дан фарқли ўлароқ).
  • Уч ўлчамли координаталар учун мос эмас.

Хулоса
C# даги Point структураси график дастурлашда муҳим ўрин тутади. У нуқталарнинг позициясини осон ва самарали бошқариш имконини беради. Юқоридаги код намуналари ва тушунтиришлар ёрдамида сиз уни ўз лойиҳаларингизда қўллашни бошлашингиз мумкин. Агар сизга Windows Forms ёки бошқа график иловаларда нуқталар билан ишлаш керак бўлса, Point сиз учун энг яхши танловдир.