2D Trasformacije: Zadatak 1: Kreirati Aplikaciju Prikazanu Na Slici
2D Trasformacije: Zadatak 1: Kreirati Aplikaciju Prikazanu Na Slici
Potrebne kontrole
Panel: panel1
Labele: 6 komada
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
namespace Example2_3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.BackColor = Color.White;
// Subscribing to a paint eventhandler to drawingPanel:
// Represents the method that will handle the Paint event of a Control
panel1.Paint += new PaintEventHandler(panel1Paint);
}
if (rbTranslation.Checked)
{
// Translation:
int dx = Convert.ToInt16(tbTranslationX.Text);
int dy = - Convert.ToInt16(tbTranslationY.Text);
m.Translate(dx, dy);
}
else if (rbScale.Checked)
{
// Scaling:
float sx = Convert.ToSingle(tbScaleX.Text);
float sy = Convert.ToSingle(tbScaleY.Text);
m.Scale(sx, sy);
}
else if (rbRotation.Checked)
{
// Rotation:
float angle = Convert.ToSingle(tbRotaionAngle.Text);
float x = Convert.ToSingle(tbRotateAtX.Text);
float y = - Convert.ToSingle(tbRotateAtY.Text);
g.FillEllipse(Brushes.Black, x - 4, y - 4, 8, 8);
m.RotateAt(angle, new PointF(x, y));
}
else if (rbShear.Checked)
{
// Shear:
float alpha = Convert.ToSingle(tbShearX.Text);
float beta = Convert.ToSingle(tbShearY.Text);
m.Shear(alpha, beta);
}
g.Transform = m;
DrawHouse(g, Color.Black);
}
// Draw Ticks:
int tick = 40;
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Far;
for (int i = -200; i <= 200; i += tick)
{
g.DrawLine(Pens.Blue, i, -3, i, 3);
g.DrawLine(Pens.Blue, -3, i, 3, i);
}
else
{
g.DrawString("0", this.Font, Brushes.Blue,
new PointF(i - sizeXTick.Width / 3, 4f), sf);
}
}
}
}
}