מערכות קואורדינטות חשובות בזמן עבודה עם גרפיקה וצורות. ניתן לסובב את ציר הקואורדינטות לקבלת צירים חדשים דרך אותו מקור. הבה נחקור את התמורות הבאות, כולל טרנספורמציה מטריקס, גלובלית, מקומית ועולמית באמצעות שפת C#. יתר על כן, הבה נלמד את התמורות הבאות באמצעות מאמר זה:
- טרנספורמציה מטריקס, גלובלית, מקומית ועולמית - התקנת API של C#
- החל טרנספורמציה של מטריקס באופן פרוגרמטי באמצעות C#
- החל שינוי קואורדינטות גלובלי באופן פרוגרמטי עם C#
- הגדר טרנספורמציה מקומית באופן פרוגרמטי ב-C#
- החל טרנספורמציה עולמית באופן פרוגרמטי באמצעות C#
טרנספורמציה מטריקס, גלובלית, מקומית ועולמית - התקנת API של C#
Aspose.Drawing for .NET API תומך בעיבוד אובייקטי ציור שונים. אתה יכול בקלות ליצור, לערוך, לשנות או לעבד גרפיקה ביישומים מבוססי NET שלך. כל שעליך לעשות הוא להוריד את קובץ ה-DLL מהקטע מהדורות חדשות. מצד שני, אתה יכול להגדיר אותו מ-NuGet עם פקודת ההתקנה הבאה:
PM> Install-Package Aspose.Drawing
החל טרנספורמציה של מטריקס באופן פרוגרמטי באמצעות C#
למחלקת Matrix יש מטריצה אפינית של 3 על 3 המייצגת את הטרנספורמציה. אתה יכול להשתמש בו כדי לסובב, לתרגם או לשנות קנה מידה של צורה לפי הדרישות שלך. השלבים הבאים מסבירים כיצד ליישם טרנספורמציה מטריצה:
- יצירת אובייקט מחלקה Bitmap
- צור צורה
- החל טרנספורמציה של מטריקס
הקוד שלהלן מראה כיצד ליישם טרנספורמציה מטריצה באופן תוכנתי באמצעות שפת C#:
// אתחול אובייקט מחלקה של Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
// הכריז על אובייקט בכיתה גרפיקה
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));
// הפעל אובייקט מחלקה מלבן
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);
}
החל שינוי קואורדינטות גלובלי באופן פרוגרמטי עם C#
טרנספורמציה גלובלית משמשת להמרת כל האובייקטים הגרפיים בציור. תוכל לבצע את השלבים שלהלן ליישום שינוי קואורדינטות גלובלי:
- אתחול מופע של מחלקה Bitmap
- הכריז על אובייקט מחלקה Graphics
- הגדר סיבוב
- צייר צורה עם טרנספורמציה גלובלית
הקוד הבא משכלל את שינוי הקואורדינטות הגלובלי באופן תכנותי באמצעות 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");
הגדר טרנספורמציה מקומית באופן פרוגרמטי ב-C#
טרנספורמציה מקומית קשורה לצורות ספציפיות או לגרפיקה בציור. ניתן להסביר זאת באמצעות טרנספורמציה של נתיב גרפי שבו רק הפריטים של נתיב זה עוברים טרנספורמציה. אתה יכול להגדיר טרנספורמציה מקומית עם השלבים הבאים:
- אתחול אובייקט של מחלקת Bitmap
- הצהר על אובייקט המחלקה Graphics ו-GraphicsPath
- צור צורה והגדר את מטריקס
- שיטת המרת שיחות
קטע הקוד שלהלן מסביר כיצד להגדיר טרנספורמציה מקומית באופן תכנותי באמצעות 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");
החל טרנספורמציה עולמית באופן פרוגרמטי באמצעות C#
ההמרה של קואורדינטות עולמיות לקואורדינטות עמוד ידועה בשם טרנספורמציה עולמית. קואורדינטות עמוד כאלה משמשות לאחר מכן לעיבוד גרפיקה במכשירים שונים. אז אתה יכול ליישם טרנספורמציה עולמית באמצעות C# עם השלבים הבאים:
- אתחול אובייקט של מחלקת Bitmap
- קרא לשיטת TranslateTransform
- צייר צורה
הקוד הבא מראה כיצד ליישם טרנספורמציה עולמית באופן פרוגרמטי באמצעות שפת 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.TranslateTransform(500, 400);
Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 2);
graphics.DrawRectangle(pen, 0, 0, 300, 200);
// שמור תמונת פלט עם טרנספורמציה עולמית
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\WorldTransformation_out.png");
סיכום
בקצרה, למדת על טרנספורמציות שונות הקשורות לגרפיקה ממוחשבת וצורות. עליך להיות מסוגל להבין את הפרטים של טרנספורמציה גלובלית, מקומית ועולמית באמצעות שפת C#. יתרה מזאת, אתה יכול לקרוא את תיעוד ה-API לפרטים נוספים או ליצור איתנו קשר דרך פורומי התמיכה החינמית. נשמח לעזור לך!