Вниз
Скачать: 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.024 c
3-43391
AntonSh
2004-02-13 15:09
2004.03.14
Работа с TQuery


11-43407
miek
2003-06-27 19:58
2004.03.14
216 ошибка при выходе


1-43540
Talla2k
2004-02-27 01:55
2004.03.14
Траблы с OpenDialog


1-43451
Зьмитрок
2004-02-29 22:34
2004.03.14
VCL forms application отказывается копилироваться


3-43288
tv
2004-02-12 12:24
2004.03.14
Unicode строки в поле типа Memo




   Наверх