• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Перевод с Pascal ABC в C#

  • Автор темы Автор темы Linko
  • Дата начала Дата начала

Linko

Ученик
Регистрация
10 Дек 2020
Сообщения
1
Реакции
0
Баллы
0
Перевод с 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()

}
}
 
Назад
Сверху