Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.03 c
1-43569
smirnoff
2004-02-27 17:10
2004.03.14
не закидывайте камнями. просто срочно надо


3-43305
sherminator
2004-02-11 22:34
2004.03.14
неизвестный тип


9-43237
Orc
2003-08-27 09:25
2004.03.14
Timer с DirecxX


1-43623
Dina
2004-01-23 13:34
2004.03.14
На форме надо написать X в квадрате ( Двоечка вверху :) )


14-43836
Bublik
2004-02-20 19:10
2004.03.14
Помогите горю




   Наверх