Diskuze: Program v C#
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Program v C# je poměrně nic neříkající název vlákna, který budou někteří i ignorovat. Na fóru je zvykem pokládat otázka. Jaká je tvá otázka, co konkrétně ti nejde? Jinak pravoúhlý čtyřúhelník je IMHO obdélník
Viem že je to obdlžnik, respektíve štvorec. Program samotný ide, otáčanie okolo vrcholu som vyriešil takto :
Rectangle rectangle = new Rectangle(xmin, ymin, xmax - xmin, ymax -
ymin);
g.DrawRectangle(pen, rectangle);
Region myRegion = new Region(rectangle);
Matrix transformMatrix = new Matrix();
if (radioButton1.Checked)
{
transformMatrix.RotateAt(alfa, new Point(xmin,ymin));
}
else
if (radioButton2.Checked)
{
transformMatrix.RotateAt(alfa, new Point(xmax, ymax));
}
else
if (radioButton3.Checked)
{
transformMatrix.RotateAt(alfa, new Point(xmin, ymax));
}
else
if (radioButton4.Checked)
{
transformMatrix.RotateAt(alfa, new Point(xmax, ymin));
}
myRegion.Transform(transformMatrix);
g.FillRegion(Brushes.Blue, myRegion);
Čo ale nemá nič spoločne s transformačnou maticou.
Matice sú dané vzorcom.
Matrix otocenie = new Matrix(cos,sin,-sin,cos,0,0);
Matrix posunutia = new Matrix(1, 0, 0, 1, sx, sy);
Matrix posunutiaINV = new Matrix(1,0,0,1,-sx,-sy);
Majú sa vynásobiť, kde vznikne celková matica a potom tú násobiť z
danými vrcholmi, no v tomto prípade si neviem rady.
A ta třída Matrix je tvoje nebo používáš tu z .NET? Ta má na sobě nějaké rotate...
Na matiku jsme nikdy extra nebyl, ale začal bych tím, že si vytvořím ty matice. To cos v matici má být Math.Cos(uhel), kde uhel je o kolik radiánů otáčíš a tak dále i pro ostatní hodnoty. K násobení má Matrix metodu Multiply(). To sx a sy je předpokládám posunutí kvůli středu rotace. Třeba mě tu někdo ještě doplní.
Zobrazeno 6 zpráv z 6.