- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
POINT Point_X(POINT a1,POINT a2,POINT a3,POINT a4){
POINT T;
if(((a1.x<=T.x)&&(a2.x>=T.x)&&(a3.x<=T.x)&&(a4.x >=T.x))||((a1.y<=T.y)&&(a2.y>=T.y)&&(a3.y<=T.y)&&(a4.y>=T.y))){
float x1=a1.x,x2=a2.x,x3=a3.x,x4=a4.x,y1=a1.y,y2=a2.y,y3=a3.y,y4=a4.y;
float k1,k2;
if(y2-y1!=0){
k1=(x2-x1)/(y2-y1);
if(y4-y3!=0){
k2=(x4-x3)/(y4-y3);
if(k1!=k2){
T.x=((a1.x*a2.y-a2.x*a1.y)*(a4.x-a3.x)-(a3.x*a4.y-a4.x*a3.y)*(a2.x-a1.x))/((a1.y-a2.y)*(a4.x-a3.x)-(a3.y-a4.y)*(a2.x-a1.x));
T.y=((a3.y-a4.y)*T.x-(a3.x*a4.y-a4.x*a3.y))/(a4.x-a3.x);
T.x*=-1;
return T;
}else{
T.x=969; T.y=969;
//text2("Паралельны");
}
}else{
T.x=969; T.y=969;
//text2("Паралельны");
}
}else{
T.x=969; T.y=969;
//text2("Паралельны");
}
}else{
//text2("Пересечение вне отрезка");
T.x=979; T.y=979;
return T;
}
}
http://programmersforum.ru/showpost.php?s=2ce0c55a82de1e293561c547e 291e374&p=858737&postcount=5
defecate-plusplus 27.10.2011 23:22 # 0
Lure Of Chaos 27.10.2011 23:23 # 0
defecate-plusplus 28.10.2011 09:08 # +2
рукалицо
тока надо как обычно в Ц надо делать изъебства
typedef struct {....} Point;
ctm 28.10.2011 13:51 # 0
rat4 28.10.2011 13:55 # +1
979 = Пересечение вне отрезка
ctm 28.10.2011 14:58 # 0
guest 29.10.2011 16:08 # +2
roman-kashitsyn 01.11.2011 13:18 # 0
guest8 09.04.2019 11:50 # −999