File "triangle.txt"
Full Path: /home/analogde/www/VirtualKeyboardSample/SKILL/triangle.txt
File size: 1.77 KB
MIME-type: text/plain
Charset: 8 bit
x1, y1, x2, y2 x3 y3
coef_directeur1 = (y2-y1)/(x2-x1);
;;;y1 = coef_directeur1*x1 + b1
b1 = y1 - coef_directeur1*x1;
coef_directeur2 = (y3-y2)/(x3-x1);
;;;y1 = coef_directeur1*x1 + b1
b2 = y2 - coef_directeur1*x2;
Double Angle = Math.Atan2(y2-y1, x2-x1) - Math.Atan2(y4-y3,x4-x3);
dx1 = x2-x1;
dy1 = y2-y1;
dx2 = x4-x3;
dy2 = y4-y3;
d = dx1*dx2 + dy1*dy2; // dot product of the 2 vectors
l2 = (dx1*dx1+dy1*dy1)*(dx2*dx2+dy2*dy2) // product of the squared lengths
angle = acos(d/sqrt(l2));
ax + by + c = 0
a1x + b1y + c = 0
tan phi = ab1-a1b / aa1+bb1
;;;;;;;;;;;;;;;;;;;;;;;
(3 1) (14 1) 1 - 1 / 14 - 3 = 0 (y2-y1) = 0
(14 1) (14 27) 14 - 14 / 27-1 (y3-y2) = 0
pas de deplacement 10
hauteur_max = hauteur - i*pas_deplacement
25+20 = 45
4 * 20 + 5 * 25 = 205
distance_bord = 10.45/sqrt(2)
on veut 10 donc 10x sqrt(2)=14.142
(hauteur - 14.142- hauteur_max - 10 ) / 45 =( 285.45 - 34.142) / 45 = 5.58 soit nb_slot = 5
4 * 20 + 5 * 25 = 205
d = (285.45 - 205 ) / 2 = 40.22
if( d > 35 then
nb_slot = nb_slot + 1
5 * 20 + 6 * 25 = 250
d = (285.45 - 250 ) / 2 = 17.725
17.725 + 250 = 267.725 alors que le max est 285.84 - 10 - 14.142 = 261.698
261.698 = 6 * 25 + 5 *delta
delta = 261.7 - 150 - 10 / 5 = 20.34
)
////////////////////////////////////////////////////////////////////
autre mthode
2 droite dont on va calculer le points d'intersection
p1(750 271.32) p2(976.31 0)
p3(715 285.45) p4(715 0)
coef_directeur1 = (y2-y1)/(x2-x1);
;;;y1 = coef_directeur1*x1 + b1
b1 = y1 - coef_directeur1*x1;
coef_directeur2 = (y4-y3)/(x4-x3);
;;;y1 = coef_directeur1*x1 + b1
b2 = y2 - coef_directeur1*x2;
0-271.32 = -271.31
976.31-750= 226.31
m = -1.198
271.32 = -750 * (-1.198)
x + 0y= 715