Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.14;
Скачать: CL | DM;

Вниз

Как нарисовать перпендикуляр ?   Найти похожие ветки 

 
tararasyk   (2004-02-27 14:32) [0]

В Canvas(е) с помощю MoveTo, LineTo рисую линию, может кто сталкивался как можно нарисовать перпендикуляр к этой линии ..?


 
MBo ©   (2004-02-27 14:36) [1]

вектор, перпендикулярный (X,Y), есть (+-Y, -+X)


 
Алхимик ©   (2004-02-27 14:36) [2]

Сталкивались. Школьный курс геометрии.
Имеем координаты отрезка - кто мешает вычислить перпендикуляр?
Наверно двойка в четверти.


 
Eagle-XK ©   (2004-02-27 14:50) [3]

Это что, новый орех? :-)


 
TUser ©   (2004-02-27 15:25) [4]

Аналитическая геометри в школе не преподается. Если без мат.уклона.


 
WebErr ©   (2004-02-27 15:30) [5]

Если линия задаётся как y(x)=kx+b, то перпендикуляр будет иметь вид y1(x)=-x/k+b1, где b1 можно узнать подставив в уравнения известную точку этой линии (точку из которой исходит перпендикуляр). А вообще это - орех! :))))


 
Тимохов ©   (2004-02-27 15:33) [6]


> А вообще это - орех! :))))

До него далеко.


 
GLFox   (2004-02-27 15:37) [7]

Вот. Это работает.

Canvas.Pen.Style:=psSolid;
Canvas.MoveTo(X1,Y1);
Canvas.LineTo(X2,Y2);
//Getting middle point
iTmpX:=Round((X1+X2)/2);
iTmpY:=Round((Y1+Y2)/2);
//Calculating coefficients for line equation (y=kx+b)
try
CoefK:=(Y2-Y1)/(X2-X1);
CoefK:=-1/CoefK;
except
StatusBar1.Panels[0].Text:="ERROR: Can""t calculate coefficients";
CoefK:=0;
end;
CoefB:=iTmpY-CoefK*iTmpX;
//Drawing perpendicular line
Canvas.MoveTo(0,Round(CoefK*0+CoefB));
Canvas.LineTo(ClientWidth,Round(CoefK*ClientWidth+CoefB));



Страницы: 1 вся ветка

Текущий архив: 2004.03.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
3-43377
belyh
2004-02-14 23:45
2004.03.14
компонент QUERY -???


4-43966
CC
2004-01-05 12:36
2004.03.14
иконки из exe - файла


1-43539
шаген
2004-02-27 21:03
2004.03.14
для любителей нетривиальных задач


1-43478
Ivolg
2004-02-29 16:47
2004.03.14
Как написать свой компонент


14-43784
nikkie
2004-01-23 14:00
2004.03.14
получил ответ из Белого дома :)