Maison > interface Web > js tutoriel > Questions JavaScript intéressantes : points, lignes et surfaces

Questions JavaScript intéressantes : points, lignes et surfaces

黄舟
Libérer: 2017-02-13 16:19:50
original
1248 Les gens l'ont consulté

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
Copier après la connexion

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;
}
Copier après la connexion


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

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal