Перевести Код Из Дельфи На С++

Тема в разделе "MS Visual C++", создана пользователем Dimkawshm, 2 июн 2014.

  1. Dimkawshm

    Dimkawshm Member

    Регистрация:
    2 июн 2014
    Сообщения:
    10
    Симпатии:
    0
    Если кому то не в лом, посмотрите пожалуста! Задача кажется крайне интересной!

    Код (PHP):
    unit Unit1;

    interface

    uses //После этого слова идет перечисление подключенных модулей.
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, Buttons, ExtCtrls;

    //В этих модулях находится описание разных методов и процедур,

    //которые мы можем использовать




    type //После этого идет объявление типов
    TForm1 = class(TForm) //Начало описания нового объекта TForm1
    BitBtn1: TBitBtn; //Эта наша кнопка:
    PaintBox1: TPaintBox;
    procedure BitBtn1Click(Sender: TObject); //Это событие от кнопки
    procedure draw();
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    var //Объявление глобальных переменных
    Form1: TForm1; //это описана переменная Form1 типа объекта TForm1

    implementation

    {$R *.dfm}
    {Далее идет процедура, которую создал Delphi для обработки

    события OnClick, когда мы дважды щелкнули по событию в

    объектном инспекторе.}

    procedure TForm1.BitBtn1Click(Sender: TObject); //Имя процедуры
    begin  //Начало процедуры
    draw();

    end; //Конец процедуры





    procedure Tform1.draw(); //Имя процедуры

    const
    iterations = 50000; //Кол-во итераций

    var //Объявление глобальных переменных
    t, x, y: real;
    p: real;//CЛУЧАЙНАЯ ВЕЛИЧИНА
    k: longint;
    mid_x, mid_y, radius: integer;

    begin  //Начало процедуры
    mid_x := paintbox1.width div 2;
    mid_y := paintbox1.height -100;
    radius := trunc(0.1 * mid_y);
    randomize;
    x := 1.0;
    y := 0.0;
    for k := 1 to iterations do
    begin
    p := random;
    t := x;
    if p <= 0.85 then //Построение верхней части листа
    begin
    x := 0.84 * x -0.045 * y;
    y := 0.045 * t + 0.86  * y + 1.6;
    end
    else
    if p <= 0.92 then //Построение левого листа
    begin   //Начало процедуры
    x := 0.25  * x - 0.26 * y;
    y := 0.23 * t + 0.25  * y + 1.6;

    end             //Построение правого листа
    else if p <= 0.99 then
    begin                                         //Начало процедуры
    x := -0.135  * x + 0.28 * y;
    y := 0.26 * t + 0.245 * y + 0.44;
    end
    else
    begin            //Построение ст*цензура*
    x := 0.0;
    y := 0.16 * y ;
    end;
    paintbox1.Canvas.Pixels[mid_x+round(radius*x), mid_y-round(radius*y)+35]:=clGreen
    end
    end.//Конец модуля. После end и точки никакой код больше не воспринимается.
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    Скажи че код делает, МБ перепишу.
     
  3. Dimkawshm

    Dimkawshm Member

    Регистрация:
    2 июн 2014
    Сообщения:
    10
    Симпатии:
    0
    Смутно помнится, код рисует на канве папоротник. Стебель, листья. Коду уже года два. Он у меня на диске в записках лежал.
     
  4. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    В С++ нет встроенных функций для рисования вообще. Нужно пользовать сторонние библиотеки. Я могу перевести с использованием Qt, но оно надо?
     
Загрузка...
Похожие Темы - Перевести Код Из
  1. marik22222
    Ответов:
    1
    Просмотров:
    1.205
  2. ClockRu
    Ответов:
    0
    Просмотров:
    1.255
  3. GoldenYear
    Ответов:
    0
    Просмотров:
    1.169
  4. Ластик
    Ответов:
    3
    Просмотров:
    1.483
  5. Реник
    Ответов:
    1
    Просмотров:
    1.235

Поделиться этой страницей