Помощь - Поиск - Пользователи - Календарь
Полная версия: Рисунок в графическом режиме
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Brad Bellick
Здравствуйте!
Не могли ли бы вы мне помочь с составлением условий для определения куда попадает точка (во внутрь, на линию, или снаружи круга ) , координаты которой нужно вводить самому с клавиатуры. Сам рисунок я нарисовал и разобрался с условиями для прямой линии. Осталось разобраться с условиями на кривую линию и на окружность. О чем собственно и прошу.
Вот мой код на данный момент, а также в приложении (аттаче) сам рисунок с теми координатами, которые должны быть. P.S. радиус маленького круга у меня взят 1 сантиметр.

Program grafika;
Uses graph, crt;
const koef=50;
const koef2=25;
var a,b,y,x,vidx,vidy:integer;
d:real;
Begin
clrscr;
detectgraph(a,b);
Initgraph(a,b,'');

cleardevice;
vidx:=GetmaxX div 2;
vidy:=GetmaxY div 2;

Line(0,vidy,GetMaxx,vidy);
Line(vidx,0,vidx,Getmaxy);

circle(vidx,vidy-(2*koef), 2*koef);
circle(vidx,vidy-(2*koef),koef);
moveto(vidx-2*koef,vidy);
setcolor(5);
lineto(vidx,vidy+koef);
lineto(vidx+2*koef,vidy);
lineto(vidx-2*koef,vidy);

readln(x,y);
putpixel(x,y,green);

if (x>=vidx-2*koef) and (y=vidy) and (x<=vidx+2*koef)
then outtextxy(30,30,'na linii');
if (x>=vidx-2*koef) and (x=vidx) and (
{...... dalse ne znaju kak}

readln;
closegraph;
end.



Client
Прямую можно описать так: (x-x1)/(x2-x1)=(y-y1)/(y2-y1), а окружность так: (x-a)^2+(y-b)^2=r^2
renesko1
Попробуй реализовать следующее .
Центр осей допустим x0, y0.
длина Ед.отрезка котрый у тебя на рисунке в пикселях sizeInpixel.
тогда вводим координату x, y.
берем цвет из точек
x1 := x0 + x * sizeInPixel ;
y1 := y0 + y * sizeInPixel ;
и если он черный то не попадает если цвет заливки то попал.
ps Вроде так.

Brad Bellick
Цитата(Client @ 30.04.2008 19:10) *

Прямую можно описать так: (x-x1)/(x2-x1)=(y-y1)/(y2-y1), а окружность так: (x-a)^2+(y-b)^2=r^2

А что у тебя в первом условии X1 и X2, а во втором a и b, а то у меня в коде это все немного по другому будет обозначатся?

Добавлено через 3 мин.
Цитата(renesko1 @ 30.04.2008 19:13) *

если он черный то не попадает если цвет заливки то попал.

К сожелению мне все это нужно математически осуществить yes2.gif
renesko1
Ну тогда просто как возможный из вариантов.
Client
X1 и Y1-это координаты одной точки прямой, X2 и Y2 -координаты второй точки прямой,A и B- координаты центра окружности
Brad Bellick
А x i y это введенные координаты точки?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.