Показать сообщение отдельно
Старый 10.12.2020, 22:32   #1 (permalink)
Linko
Новичок
 
Регистрация: 10.12.2020
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Перевод с Pascal ABC в C#

Не понимаю до конца как перевести код.
Pascal ABC :


uses GraphABC;
const
N = 10;
K1 = 0.67;
K2 = 0.18;
IncAngle = 10;

procedure Draw(x, y, r, ang: real);
begin
if r > 2 then
begin
Draw(x, y, r * K1, ang + IncAngle);

var ang1 := 360 / N;
for var i := 0 to N - 1 do
begin
var angle := DegToRad(ang1 * i + ang);
Draw(x + r * Cos(angle), y + r * Sin(angle), r * K2, ang + IncAngle);
end;
end
else
DrawCircle(Round(x), Round(y), Round(r));
end;

begin
SetWindowIsFixedSize(true);
LockDrawing();

while true do
for var i := 0 to 359 do
begin
ClearWindow();
Draw(Window.Width / 2, Window.Height / 2, 190, i);
Redraw();
end;
end.



C# :


private Graphics g;
private Pen p;

public class Fractal
{
public const double N = 10;
public const double K1 = 0.67;
public const double K2 = 0.18;
public const double IncAngle = 10;

public static void Drow(double x, double y,double r, double ang)
{

int i;

if (r > 2)
{
Drow(x, y, r * K1, ang + IncAngle);

var ang1 = 360 / N;

for (i = 0; i < N; i++)
{
var angle = Math.Atan2(ang1 * i, ang);
Drow(x + r * Math.Cos(angle), y + r * Math.Sin(angle), r * K2, ang + IncAngle);

}
}


else
{

}

while()

}
}
Linko вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070