Maison > Article > interface Web > Questions JavaScript intéressantes : points, lignes et surfaces
La description du problème est très simple. Étant donné les coordonnées de certains points, retournez true s'ils sont sur la même ligne droite.
Par exemple, [7, 4], cela représente un point.
onLine([[1,2], [7, 4], [22, 9]]); // returns true onLine([[1,2], [-3, -14], [22, 9]]); // returns false
Quand j'ai vu ce sujet, j'ai d'abord imaginé un avion dans mon esprit, puis un système de coordonnées rectangulaires est apparu.
J'ai tracé ces points sur le système de coordonnées un à un selon la méthode qui m'a été enseignée par mon professeur de mathématiques au collège.
Connectez ensuite les points avec des segments de ligne.
Alors, comment juger qu'ils sont sur la même ligne droite ?
J'ai vite pensé à la pente.
Si deux points sur la droite sont (x1, y1) , (x2, y2) , alors la pente de la droite k = (y2-y1)/ (x2-x1) .
Si les pentes de ces segments de droite sont les mêmes, alors ils doivent être sur la même droite !
Dans le programme, il me suffit de déterminer la pente entre les segments de ligne. Si elle est différente, elle renverra faux.
Écrivez le code en vous basant sur les idées ci-dessus :
function onLine(points) { var slope; for(var i=0;i<points.length-1;i++){ var p1 = points[i]; var p2 = points[i+1]; var currentSlope = (p2[1] - p1[1]) / (p2[0] - p1[0]); if(slope){ if(slope !== currentSlope){ return false; } } else{ slope = currentSlope; } } return true; }
Les questions JavaScript ci-dessus sont intéressantes : le contenu des points, des lignes, et surfaces, et plus encore. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !