Heim > Artikel > Web-Frontend > Interessante JavaScript-Fragen: Punkte, Linien und Flächen
Die Problembeschreibung ist sehr einfach. Geben Sie wahr zurück, wenn die Koordinaten einiger Punkte auf derselben geraden Linie liegen.
Zum Beispiel [7, 4] stellt dies einen Punkt dar.
onLine([[1,2], [7, 4], [22, 9]]); // returns true onLine([[1,2], [-3, -14], [22, 9]]); // returns false
Als ich dieses Thema sah, stellte ich mir zunächst eine Ebene vor und dann erschien ein rechteckiges Koordinatensystem.
Ich habe diese Punkte einzeln im Koordinatensystem nachgezeichnet, gemäß der Methode, die mir mein Mathematiklehrer in der Mittelschule beigebracht hat.
Verbinden Sie dann die Punkte mit Liniensegmenten.
Wie kann man also beurteilen, ob sie auf derselben Geraden liegen?
Ich habe schnell über die Steigung nachgedacht.
Wenn zwei beliebige Punkte auf der Geraden (x1, y1) , (x2, y2) sind, dann ist die Steigung der Geraden k = (y2-y1)/ (x2-x1) .
Wenn die Steigungen dieser Liniensegmente gleich sind, dann müssen sie auf derselben Geraden liegen!
Im Programm muss ich nur die Steigung zwischen Liniensegmenten bestimmen. Wenn sie unterschiedlich ist, wird falsch zurückgegeben.
Schreiben Sie den Code basierend auf den oben genannten Ideen:
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; }
Die oben genannten sind interessante JavaScript-Fragen: der Inhalt von Punkten, Linien, und Oberflächen und mehr Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!