JavaScript趣题:点、线、面

原创 2016年08月29日 09:29:56

题目描述很简单,给定一些点的坐标,返回true如果它们在同一条直线上。

比方说[7, 4],这代表一个点。

onLine([[1,2], [7, 4], [22, 9]]);                 // returns true
onLine([[1,2], [-3, -14], [22, 9]]);              // returns false
看到这个题目,我首先在脑海中浮现出一个平面,紧接着出现了一个直角坐标系。

我在坐标系上按照中学数学老师以前教给我的方法,把这些点一个个地描在坐标系上。

然后把点与点间,用一条条线段连接在一起。

那么,怎么判断它们在同一条直线上?

我很快想到了斜率。

若直线上任意两点为(x1,y1)(x2,y2)则直线斜率k=(y2-y1)/(x2-x1)

如果这些线段的斜率都是一样的,那么它们肯定在同一条直线上!

在程序中,我只要判断线段间的斜率,不一样就返回false

根据上面的思路写出代码:

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;
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

ArcGIS.Server.9.3和ArcGIS API for JavaScript实现点、线、面的buffer分析(十一)

目的: 1.ArcGIS.Server.9.3和ArcGIS API for JavaScript实现实现点、线、面的buffer分析,这里是通过GeometryServer实现。 准备工作: ...
  • xgl272268065
  • xgl272268065
  • 2014年04月17日 14:29
  • 965

ArcMap基础练习之点转线转面

ArcGIS基础练习,从Excel文件中读取坐标点信息,ArcMap导入点信息,点转线,线转面....
  • puhuaqiang
  • puhuaqiang
  • 2017年06月06日 09:38
  • 697

arcmap坐标点生成线和面(更正版)

一:本博客的脉络 (1 )做了如下更正:之前在网上搜到的结果是:arcmap坐标点生成线和面 ------ 注意该功能在ArcGIS10中没有了,当时自己也没有多想就转载了,再此做一下更正或者叫做总...
  • u010700335
  • u010700335
  • 2014年10月18日 18:33
  • 6454

ArcGIS中点转线面的方法

arcgis中,点转线和面的操作方法...
  • shaxiaozilove
  • shaxiaozilove
  • 2016年10月20日 23:03
  • 2915

点、线、面相关的算法

* 需要包含的头文件 */ #i nclude /* 常用的常量定义 */ const double INF = 1E200    const double EP = 1E-10 const int...
  • jemmy
  • jemmy
  • 2005年10月22日 15:45
  • 3208

arcgisengine 线转面方法

1、用 //ISegmentCollection pRing;                     //IGeometryCollection polygon = new PolygonCla...
  • jyj545
  • jyj545
  • 2014年05月27日 10:27
  • 1438

14万程序员挑战过的算法趣题

计算机的世界每天都在发生着深刻的变化。新操作系统的发布、CPU性能的提升、智能手机和平板电脑的流行、存储介质的变化、云的普及……这样的变化数不胜数。 在这样日新月异的时代中,“算法”...
  • houerfei
  • houerfei
  • 2017年08月15日 21:00
  • 863

GIS中由点生成线,点生成面的方法介绍

在GIS中单纯的用点生成面,没有任何意义,因为没有确定生成路线
  • Mello_
  • Mello_
  • 2014年11月05日 16:07
  • 3931

关于2进制思想的趣味题。

1.有一条金条,一个人给一个老板打工7天,每天给那人金条的七分之一,把金条最少切几次才可按时将工资发放? 2.现有1000个苹果,10个盒子,现在要你将1000个苹果装入10个盒子中,使得用户无...
  • u011805719
  • u011805719
  • 2015年06月30日 16:39
  • 764

AE,多点转线、面

//对应路线                 IPointCollection pLinePc = new PolylineClass();//一定要设置为线类              ...
  • qq_35040828
  • qq_35040828
  • 2017年07月01日 16:15
  • 228
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JavaScript趣题:点、线、面
举报原因:
原因补充:

(最多只允许输入30个字)