Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2009, 19:20   #1
onded
Пользователь
 
Аватар для onded
 
Регистрация: 29.09.2008
Сообщений: 26
Сообщение Проблема с осями

Ребят, вот есть у меня задача. В задаче сказано, чтобы программа могла вычислить где находится точка, если есть координаты. Скажу честно, совмещал работу друга и мою, но не могу добиться нужного результата с вычислением. Может ли кто-то помочь?? вот код:
Код:
program ccd;
uses graph,crt;
const c=50;
var grdriver,grmode,gre:integer;
    x,y,j:real;
    mx,my:integer;
    i:integer;
    s:string;
    k:char;

begin
clrscr;
repeat
clrscr;
writeln('vvedite koordinati:');
readln(x,y);

begin
grdriver:=detect;
initgraph(grdriver,grmode,'');
gre:=graphresult;
end;

      mx:=getmaxx div 2;
      my:=getmaxy div 2;
      cleardevice;
      setcolor(brown);
      line(0,my,getmaxx,my);
      line(mx,0,mx,getmaxy);
      i:=-5;



      cleardevice;

   setcolor(white);
line(589, 372,  639, 322);
line(589, 372,  639, 422);
line(689, 372,  639, 322);
line(689, 372,  639, 422);
line(539, 372,  639, 272);
line(539, 372,  639, 472);
line(739, 372,  639, 272);
line(739, 372,  639, 472);

   setcolor(white);


   setcolor(green);

   setfillstyle(3,yellow);
   floodfill(736,371,white);




     setcolor(brown);
      line(0,my,getmaxx,my);
      line(mx,0,mx,getmaxy);
      i:=-5;
         repeat
            if i<>0 then
            begin
               line(mx+round(i*c), my-7,mx+round(i*c),my+7);
               str(i:2,s);
               outtextxy(mx+round(i*c),my+8,s);
               line(mx-7,my+(i*c),mx+7,my+(i*c));
               outtextxy(mx+8,my+(-i*c),s);
            end;
         i:=i+1;
         until i>5;


     putpixel(mx+round(x*c),my-round(y*c),green);

      if ((x>=-2) and (x<=2) and (y<=2) and (y>=0)
      and ((y=((sqrt(4-sqr(x)))*10)/10)))
      or ((x>=-2) and (x<=0) and (y<=0) and (y>=-2)
      and ((y=((sqrt(4-sqr(x)))*10)/10)))
      or (x>=0) and (x<=2) and (y<=0) and (y>=-2) and (y=x-2)

      then

         outtextxy(1,50,'na liniji')

      else

         if ((x>-2) and (x<2) and (y<2) and (y>=0)
         and (y<sqrt(4-sqr(x))) and (y>-sqrt(4-sqr(x))))
         or ((x>-2) and (x<=0) and (y<=0) and (y>-2)
         and (y<sqrt(4-sqr(x))) and (y>-sqrt(4-sqr(x))))
         or (x>0) and (x<2) and (y>-2) and (y<0)
         and (y>x-2)
         then

            outtextxy(1,50,'vnutri')

         else

            outtextxy(1,50,'snaruzi');
   k:=readkey;
   closegraph;
   until k=#27;
end.
onded вне форума Ответить с цитированием
Старый 21.01.2009, 06:26   #2
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

подробнее задание напишите.....
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Старый 21.01.2009, 13:03   #3
onded
Пользователь
 
Аватар для onded
 
Регистрация: 29.09.2008
Сообщений: 26
По умолчанию

Мне только не хватает точного места нахождения пикселя... я не могу сделать так, чтобы программа точно вычисляла координаты точки. если пробовать вводить координаты, то он не показывает точно, т.к. программа расчитана на другую фигуру, а на ромб элементы не могу нужные поставить. Программа правильно выводит точку и в нужном месте, но она не точна в вычислениях.
onded вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37
Проблема) krok PHP 3 15.12.2008 21:06
Проблема eldar Работа с сетью в Delphi 12 05.10.2008 18:10
Проблема. kupulau Общие вопросы C/C++ 19 05.02.2008 21:11
проблема bill Свободное общение 7 08.07.2007 21:05