1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Графич. режим паскаль(или формула)

Тема в разделе "Вопросы новичков и не только", создана пользователем -, 8 июн 2010.

  1. Гость

    Репутация:
    0
    Тут...вот...эээ....вообщем программа какбЭ не работает:
    Построить график трактрисы (?)
    Код:
    program graf_rezh;
    
    uses crt, graph;
    
    var gd, gm, a: integer;
    x, y, phi: real;
    
    BEGIN
    clrscr;
    gd:= detect;
    
    initgraph(gd, gm,'');
    
    If GrOk <> 0 Then exit;
    
    SetBkColor(RED);
    gd := GetMaxX div 2; gm := GetMaxY div 2;
    phi := 0; a:= 60;
    
    While phi <= pi do
    Begin
    
    x := (a * (cos(phi) + ln(sin(phi/2)/cos(phi/2)))) * cos(phi);
    y := a * sin(phi) * sin(phi);
    
    
    PutPixel(Round(x) +gd, Round(y) + gm, 1);
    phi := phi + 0.01;
    End;
    
    readkey;
    closegraph;
    END.
    Выводит код ошибки "200"(бабульки у подъезда мне сказали что 200 ошибка - эт деление на ноль)


    Код:
      x := (a * (cos(phi) + ln(sin(phi/2)/cos(phi/2)))) * cos(phi);
    Отсюда убераю логарифм - все норм. только трактриса на трактрису не похожа.

    Тут наверно математику надо знать.
     
  2. Dock1100

    Dock1100 :-]

    Репутация:
    0
    Регистрация:
    9 ноя 2009
    Сообщения:
    665
    Симпатии:
    1
    Что-то мне подсказівает что тут ошибка:
    Код:
    While phi <= pi do
    Begin
    
    x := (a * (cos(phi) + ln(sin(phi/2)/cos(phi/2)))) * cos(phi);
    y := a * sin(phi) * sin(phi);
    
    
    PutPixel(Round(x) +gd, Round(y) + gm, 1);
    phi := phi + 0.01;
    End;
    Попробуйте так:
    Код:
    While phi <= pi do
    Begin
    if (phi<>180) then 
    begin
    x := a*(ln(sin(phi/2)/cos(phi/2))+cos(phi));
    y := a * sin(phi);
    PutPixel(Round(x) +gd, Round(y) + gm, 1);
    
    x:=-x;
    PutPixel(Round(x) +gd, Round(y) + gm, 1);
    end;
    
    phi := phi + 0.01;
    End;
     
  3. Гость

    Репутация:
    0
    Та же самая ошибка(200)
     
  4. Dock1100

    Dock1100 :-]

    Репутация:
    0
    Регистрация:
    9 ноя 2009
    Сообщения:
    665
    Симпатии:
    1
    а так:
    Код:
    While phi <= pi do
    Begin
    if (cos(phi/2)<>0) then 
    begin
    x := a*(ln(sin(phi/2)/cos(phi/2))+cos(phi));
    y := a * sin(phi);
    PutPixel(Round(x) +gd, Round(y) + gm, 1);
    
    x:=-x;
    PutPixel(Round(x) +gd, Round(y) + gm, 1);
    end;
    
    phi := phi + 0.01;
    End;
     
  5. Dock1100

    Dock1100 :-]

    Репутация:
    0
    Регистрация:
    9 ноя 2009
    Сообщения:
    665
    Симпатии:
    1
    Вот должно работать, у меня график нормально рисует.
    <!--shcode--><pre><code class='DElphi'>program graf_rezh;

    uses crt, graph;

    var gd, gm, a: integer;
    x, y, phi: real;

    BEGIN
    clrscr;
    gd:= detect;

    initgraph(gd, gm,'');

    If GrOk <> 0 Then exit;

    SetBkColor(0);
    gd := GetMaxX div 2; gm := GetMaxY div 2;
    phi := 0; a:= 60;
    setcolor(8);
    if (cos(phi/2)<>0)and(sin(phi/2)<>0) then
    begin
    x := a*(ln(sin(phi/2)/cos(phi/2))+cos(phi));
    y := a * sin(phi);
    end;
    moveto(Round(x) +gd,- Round(y) + gm);
    phi := phi + 0.01;
    While phi <= pi do
    Begin
    if (cos(phi/2)<>0)and(sin(phi/2)<>0) then
    begin
    x := a*(ln(sin(phi/2)/cos(phi/2))+cos(phi));
    y := a * sin(phi);
    lineto(Round(x) +gd,- Round(y) + gm);

    end;

    phi := phi + 0.01;
    End;
    setcolor(15);
    moveto(0,gm);
    lineto(639,gm);
    moveto(gd,0);
    lineto(gd,479);


    readkey;
    closegraph;
    END.[/CODE]
     
  6. Гость

    Репутация:
    0
    И у меня тоже норм рисует ;)
    Спс=)
     
  7. vital

    vital Больной Компом Детектед

    Репутация:
    0
    Регистрация:
    29 янв 2006
    Сообщения:
    2.432
    Симпатии:
    40
    у дока под авой +ик есть..
     
Загрузка...

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