Heim >Web-Frontend >js-Tutorial >Interessante JavaScript-Fragen: Punkte, Linien und Flächen

Interessante JavaScript-Fragen: Punkte, Linien und Flächen

黄舟
黄舟Original
2017-02-13 16:19:501224Durchsuche

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)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn