Witam, jestem nowy na forum oraz nowy w w zabawie z C# :) otóż potrzebuję napisać kod na kwadratową spiralę, a właściwie przepisać na C# z Fortrana z książki "Wprowadzenie do grafiki komputerowej" Angella, ma ona wyglądać tak:
a u mnie wygląda tak: i nie wiem co jest nie tak, patrze i analizuję algorytm z książki i patrze na swój kod i nie mogę dojść do tego co mam źle. Prosiłbym o pomoc. Poniżej zamieszczam kod funkcji:
int Y0 = Convert.ToInt32(pictureBox1.Height / 2);
int X0 = Convert.ToInt32(pictureBox1.Width / 2);
const int n = 4;
int[,] P = new int[n, 2];
int[,] PD = new int[n, 2];
P[0, 0] = -200 + X0; P[0, 1] = 200 + Y0;
P[1, 0] = 200 + X0; P[1, 1] = 200 + Y0;
P[2, 0] = 200 + X0; P[2, 1] = -200 + Y0;
P[3, 0] = -200 + X0; P[3, 1] = -200 + Y0;
g.DrawLine(pen1, P[0, 0], P[0, 1], P[1, 0], P[1, 1]);
g.DrawLine(pen1, P[1, 0], P[1, 1], P[2, 0], P[2, 1]);
g.DrawLine(pen1, P[2, 0], P[2, 1], P[3, 0], P[3, 1]);
g.DrawLine(pen1, P[3, 0], P[3, 1], P[0, 0], P[0, 1]);
double SMU = 0.1;
double RMU = 1 - SMU;
for (int i = 0; i < 21; i++)
{
for (int j = 0; j < 4; j++)
{
int NJ = j % 3 + 1;
PD[j, 0] = Convert.ToInt32(RMU * P[j, 0] + SMU * P[NJ, 0]);
PD[j, 1] = Convert.ToInt32(RMU * P[j, 1] + SMU * P[NJ, 1]);
g.DrawLine(pen1, P[j, 0], P[j, 1], PD[j, 0], PD[j, 1]);
P[j, 0] = PD[j, 0];
P[j, 1] = PD[j, 1];
}
for (int j = 0; j < 4; j++)
{
g.DrawLine(pen1, P[0, 0], P[0, 1], P[1, 0], P[1, 1]);
g.DrawLine(pen1, P[1, 0], P[1, 1], P[2, 0], P[2, 1]);
g.DrawLine(pen1, P[2, 0], P[2, 1], P[3, 0], P[3, 1]);
g.DrawLine(pen1, P[3, 0], P[3, 1], P[0, 0], P[0, 1]);
}
}
I tak wiem że trochę brzydki kod, ale to skromne początki :) Dziękuję za pomoc