ماتریس-جهانی-محلی-جهان-تحول

سیستم های مختصات هنگام کار با گرافیک ها و اشکال مهم هستند. محور مختصات را می توان برای به دست آوردن محورهای جدید از طریق همان مبدا چرخاند. اجازه دهید با استفاده از زبان سی شارپ، تبدیل‌های زیر را از جمله تبدیل ماتریکس، جهانی، محلی و جهانی بررسی کنیم. علاوه بر این، اجازه دهید از طریق این مقاله تغییرات زیر را بیاموزیم:

تبدیل ماتریس، جهانی، محلی و جهانی – نصب API C#

Aspose.Drawing for .NET API از پردازش اشیاء طراحی مختلف پشتیبانی می کند. می توانید به راحتی در برنامه های مبتنی بر دات نت خود گرافیک ایجاد، ویرایش، تبدیل یا رندر کنید. به سادگی فایل DLL را از بخش انتشارهای جدید دانلود کنید. از طرف دیگر، می توانید آن را از NuGet با دستور نصب زیر پیکربندی کنید:

PM> Install-Package Aspose.Drawing

اعمال تبدیل ماتریس به صورت برنامه ای با استفاده از سی شارپ

کلاس Matrix دارای یک ماتریس افین 3 در 3 است که نشان دهنده تبدیل است. می‌توانید از آن برای چرخاندن، ترجمه، یا مقیاس‌بندی یک شکل بر اساس نیاز خود استفاده کنید. مراحل زیر نحوه اعمال تبدیل ماتریس را توضیح می دهد:

  1. شیء کلاس Bitmap را نمونه سازی کنید
  2. یک شکل ایجاد کنید
  3. تبدیل ماتریس را اعمال کنید

کد زیر نحوه اعمال تبدیل ماتریس را به صورت برنامه نویسی با استفاده از زبان C# نشان می دهد:

// شی کلاس Bitmap را راه اندازی کنید
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// شی کلاس Graphics را اعلام کنید
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// شی کلاس Rectangle را راه اندازی کنید
Rectangle originalRentangle = new Rectangle(300, 300, 300, 200);
TransformPath(graphics, originalRentangle, (matrix) => matrix.Rotate(15.0f));
TransformPath(graphics, originalRentangle, (matrix) => matrix.Translate(-250, -250));
TransformPath(graphics, originalRentangle, (matrix) => matrix.Scale(0.3f, 0.3f));

// ذخیره تصویر خروجی با تبدیل ماتریس
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\MatrixTransformations_out.png");

private static void TransformPath(Graphics graphics, Rectangle originalRentangle, Action<Matrix> transform)
{
    GraphicsPath path = new GraphicsPath();
    path.AddRectangle(originalRentangle);

    Matrix matrix = new Matrix();
    transform(matrix);
    path.Transform(matrix);

    Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 2);
    graphics.DrawPath(pen, path);
}

اعمال تبدیل مختصات جهانی به صورت برنامه ای با سی شارپ

تبدیل جهانی برای تبدیل تمام اشیاء گرافیکی در یک نقاشی استفاده می شود. برای اعمال تبدیل مختصات جهانی می توانید مراحل زیر را دنبال کنید:

  1. نمونه ای از کلاس Bitmap را راه اندازی کنید
  2. شیء کلاس Graphics را اعلام کنید
  3. چرخش را تنظیم کنید
  4. یک شکل با تبدیل جهانی رسم کنید

کد زیر تبدیل مختصات جهانی را به صورت برنامه‌نویسی با استفاده از C# شرح می‌دهد:

// شی کلاس Bitmap را راه اندازی کنید
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// تبدیلی را تنظیم کنید که برای هر مورد ترسیم شده اعمال شود:
graphics.RotateTransform(15);

Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 2);
graphics.DrawEllipse(pen, 300, 300, 400, 200);

// ذخیره تصویر خروجی با تبدیل Glabal
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\GlobalTransformation_out.png");

تنظیم تبدیل محلی به صورت برنامه ای در سی شارپ

تبدیل محلی به اشکال یا گرافیک های خاص در نقاشی مربوط می شود. می توان آن را با تبدیل یک مسیر گرافیکی توضیح داد که در آن فقط موارد آن مسیر تبدیل می شوند. شما می توانید تبدیل محلی را با مراحل زیر تنظیم کنید:

  1. یک شی از کلاس Bitmap را راه اندازی کنید
  2. Graphics و شی کلاس GraphicsPath را اعلام کنید
  3. یک شکل ایجاد کنید و ماتریس را تعریف کنید
  4. روش Call Transform

قطعه کد زیر نحوه تنظیم تبدیل محلی را به صورت برنامه نویسی با استفاده از C# توضیح می دهد:

// شی کلاس Bitmap را راه اندازی کنید
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

GraphicsPath path = new GraphicsPath();
path.AddEllipse(300, 300, 400, 200);

// تبدیلی را تنظیم کنید که برای مسیر خاصی که باید ترسیم شود اعمال شود:
Matrix matrix = new Matrix();
matrix.RotateAt(45, new Point(500, 400));
path.Transform(matrix);

Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 2);
graphics.DrawPath(pen, path);

// ذخیره تصویر خروجی با تبدیل محلی
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\LocalTransformation_out.png");

با استفاده از سی شارپ، World Transformation را به صورت برنامه ای اعمال کنید

تبدیل مختصات جهان به مختصات صفحه به عنوان تبدیل جهانی شناخته می شود. سپس از چنین مختصات صفحه برای رندر کردن گرافیک در دستگاه های مختلف استفاده می شود. بنابراین می توانید با استفاده از C# با مراحل زیر تبدیل جهان را اعمال کنید:

  1. یک شی از کلاس Bitmap را راه اندازی کنید
  2. روش TranslateTransform را فراخوانی کنید
  3. یک شکل بکشید

کد زیر نشان می دهد که چگونه با استفاده از زبان سی شارپ، تبدیل جهان را به صورت برنامه ای اعمال کنیم:

// شی کلاس Bitmap را راه اندازی کنید
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// تبدیلی را که مختصات جهان را ترسیم می کند به مختصات صفحه تنظیم کنید:
graphics.TranslateTransform(500, 400);

Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 2);
graphics.DrawRectangle(pen, 0, 0, 300, 200);

// ذخیره تصویر خروجی با World Transformation
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\WorldTransformation_out.png");

نتیجه

به طور خلاصه، شما در مورد دگرگونی های مختلف مربوط به گرافیک و اشکال کامپیوتری آشنا شده اید. شما باید بتوانید جزئیات تحول جهانی، محلی و جهانی را با استفاده از زبان C# درک کنید. علاوه بر این، می‌توانید اسناد API را برای جزئیات بیشتر بخوانید یا از طریق تالار گفتمان پشتیبانی رایگان با ما در تماس باشید. ما دوست داریم به شما کمک کنیم!

همچنین ببینید