精华内容
下载资源
问答
  • 12864液晶点和任意两点间直线原理、算法及程序原码
  • 用matlab实现,二值图上任意两点间画直线的源程序。 已测试过,速度很快,效果很好。
  • MATLAB画两点间直线方法

    千次阅读 2019-10-17 09:46:17
    已知两点A(x1,y1),B(x2,y2),则AB线段程序为: plot([x1,x2],[y1,y2]); 或 line([x1,x2],[y1,y2]);

    已知两点A(x1,y1),B(x2,y2),则画AB线段程序为:
    plot([x1,x2],[y1,y2]);

    line([x1,x2],[y1,y2]);

    展开全文
  • 知道两点坐标画直线有很多种方法,这里主要介绍使用DDA算法: DDA算法是计算机图形学中最简单的绘制直线算法。其主要思想是由直线公式y = kx + b推导出来的。 我们已知直线段两个端点P0(x0,y0)和P1(x1,y1),就能求...

    有时候需要演示一下直线是怎么样生成的,就可以使用matplotlib作为教学工具,把演示过程动态化,并且可视化,也可以让学生快速地学习和修改直线的算法。知道两点坐标画直线有很多种方法,这里主要介绍使用DDA算法:

    DDA算法是计算机图形学中最简单的绘制直线算法。其主要思想是由直线公式y = kx + b推导出来的。

    我们已知直线段两个端点P0(x0,y0)和P1(x1,y1),就能求出 k 和 b 。

     

    在k,b均求出的条件下,只要知道一个x值,我们就能计算出一个y值。如果x的步进为1(x每次加1,即x = x +1),那么y的步进就为k+b;同样知道一个y值也能计算出x值,此时y的步进为1,x的步进为(1-b)/k。根据计算出的x值和y值,向下取整,得到坐标(x’,y’),并在(x’,y’)处绘制直线段上的一点。

     

    为进一步简化计算,通常可令b取0,将起点看作(0,0)。设当前点为(xi, yi)则用DDA算法求解(xi+1,yi+1)的计算公式可以概括为:

     

    xi+1 = xi + xStep (1)

    yi+1 = yi + yStep (2)

    我们一般通过计算 Δx 和 Δy 来确定xStep和yStep:

     

    如果 Δx > Δy ,说明x轴的最大差值大于y轴的最大差值,x轴方向为步进的主方向,xStep = 1,yStep = k;

    如果 Δy> Δx,说明y轴的最大差值大于x轴的最大差值,y轴方向为步进的主方向,yStep = 1,xStep = 1 / k。

    根据这个公式,就能通过(xi,yi)迭代计算出(xi+1、yi+1),然后在坐标系中绘制计算出的(x,y)坐标点。

     

    根据上面的算法进行一下修改,可以把代码写成这样:

    #深入浅出matplotlib-蔡军生(qq:9073204)
    
    #https://mysoft.blog.csdn.net/
    
    #2020-11-24
    
    
    
    import numpy as np
    
    import matplotlib.pyplot as plt
    
    
    
    plt.axis([-20, 130, 80, -20])
    
    
    
    plt.axis('on')
    
    plt.grid(True)
    
    
    
    #显示辅助坐标系
    
    plt.arrow(0,0, 20,0, head_length = 4, head_width = 3, color = 'k')
    
    plt.arrow(0,0, 0,20, head_length = 4, head_width = 3, color = 'k')
    
    plt.text(15, -3, 'x')
    
    plt.text(-5, 15, 'y')
    
    
    
    #画一条蓝色线
    
    x1 = 20
    
    x2 = 120
    
    y1 = 40
    
    y2 = 20
    
    
    
    q = np.sqrt((x2-x1)**2 + (y2-y1)**2)
    
    ux = (x2-x1)/q
    
    uy = (y2-y1)/q
    
    
    
    for step in np.arange(0, q, 0.5):
    
        px = x1 + step*ux
    
        py = y1 + step*uy
    
        plt.scatter(px, py, s = 1, color = 'g')
    
    
    
    plt.show()

    上面主要计算两点的距离,然后沿着两点距离的方向不断地增加,那么就可以计算出中间的坐标值,就可以依次地显示点,再把这些点显示出来,就成为了一条直线。

    在这里绘制的直线,并不是把两点连接到一起,而是采用不同的点组成了一条直线,也演示了画一条直线的原理。

     

    展开全文
  • 获取当前位置和标注点位置的经纬度的方法我就不写上了,得到两点的经纬度,首先获取两点之间直线距离     public Double Distance(double lat1, double lng1,double lat2, double lng2) { ...

    最近刚开始接触开发,开发一个小应用,需要实现在百度地图标注当前位置和从数据库读取的点的位置,并计算出两点的位置划线

     

    获取当前位置和标注点位置的经纬度的方法我就不写上了,得到两点的经纬度,首先获取两点之间的直线距离

     

     

    public Double Distance(double lat1, double lng1,double lat2, double lng2) {
         
         
         DoubleR=6370996.81;  //地球的半径
         
        /*
         * 获取两点间x,y轴之间的距离
         */
        Double x = (lng2 - lng1)*Math.PI*R*Math.cos(((lat1+lat2)/2)*Math.PI/180)/180;
        Double y = (lat2 - lat1)*Math.PI*R/180;
    
    
         Double distance = Math.hypot(x, y);   //得到两点之间的直线距离
             
       return   distance;
             
         }

     

     

     

    然后通过两点的经纬度在地图上画出两点间的直线

     

     public void  DrawLines(){  
     
       double startlats=39.960299;
    double startlongs=116.418642;
        double latline=9.968263;
    double lngline=116.439914;
           LatLng p1 = new LatLng(startlats, startlongs);
    LatLng p2 = new LatLng(latline, lngline);
    List<LatLng> points = new ArrayList<LatLng>();
    points.add(p1);
    points.add(p2);
    OverlayOptions ooPolyline = new PolylineOptions().width(10).color(0xAAFF0000).points(points);
    mBaiduMap.addOverlay(ooPolyline);
      /*
         * 调用Distance方法获取两点间x,y轴之间的距离
         */
    double cc= Distance(startlats,  startlongs,latline,lngline);
    
    int length=(int)cc;
    
      Toast.makeText(this, "您与终端距离"+length+"米", Toast.LENGTH_SHORT).show(); 
    
    
     }   

     

     

     

     

     

     

    效果如右下图,不过因为实际经纬度和实例中经纬度的差异,所以实际距离会有一定的差异

     

    展开全文
  • gMap两点之间画路线和直线的方法

    千次阅读 2012-04-06 13:02:45
    网上搜过路线的方法,看到过两种方法直接调用GMapRoute的manager里面有个什么方法,...//两点之间的线路 private void DrawrouteBetweenTowPoint(PointLatLng pointLatLng_S,PointLatLng pointLatLng_E)  {

    网上搜过画路线的方法,看到过两种方法直接调用GMapRoute的manager里面有个什么方法,自己写的时候总是找不到那个方法,后来朋友教了个方法,我试过后可以用

    //画出两点之间的线路
    private void DrawrouteBetweenTowPoint(PointLatLng pointLatLng_S,PointLatLng pointLatLng_E)
            {
                RoutingProvider rp = gMap.MapProvider as RoutingProvider;
                if(rp != null)
                {
                    rp = GMapProviders.GoogleMap;
                }
                MapRoute route = rp.GetRoute(pointLatLng_S, pointLatLng_E, false, false, (int) gMap.Zoom);
                if(route!=null)
                {
                    GMapRoute r =new GMapRoute(route.Points,route.Name);
                    _overlay.Routes.Add(r);
                 //   gMap.ZoomAndCenterRoute(r);
                }
            }
     //画出两点直接的直线
     private void DrawLineBetweenTwoPoint(PointLatLng pointLatLng_S,PointLatLng pointLatLng_E)
            {
                List<PointLatLng> points = new List<PointLatLng>();
                points.Add(pointLatLng_S);
                points.Add(pointLatLng_E);
                GMapRoute r = new GMapRoute(points, "");
                r.Stroke = new Pen(Color.Green, 1);
                _overlay.Routes.Add(r);
            }

    展开全文
  • JS亮点之间画直线

    2017-05-22 10:35:13
    最近需求要页面上画直线,下面有个方法 第一种:这是通过来生成一条直线         /************* 画 **************   x,y 所在的屏幕坐标(像素)   color 颜色(字符串值)   size ...
  • canvas在两点之间画线

    万次阅读 2018-01-13 17:36:24
    最新需要做一个表格,有坐标轴,轴上有点,点间连线,想到了canvas,查找官方API,发现还是很简单的,不过毕竟是第一次接触html5,线也费些时间。 先说说canvas,初始化要设置宽高,而且不能用样式表,必须...
  • 最近项目用到百度地图,由于司机错误使用导致上传的GPS点天少,两点之间的距离太长没有GPS点,现做了一个小算法来解决此问题(地图视为平面图形)代码如下。 //每1000米算作一个点 var pointA = new BMap.Point(ax...
  • delphi如何实现画布上任意两点间自动的沿直线运动,抛物线运动轨迹
  • matlab中,使用plot3函数可以通过两点绘制三维直线,语法如下: 设点A为(a1,a2,a3),B为(b1,b2,b3) plot3([a1,b1],[a2,b2],[a3,b3]); 通过矩阵绘制起点为原点的向量举例如下: A = [ 1.0000000e-06 1.0000000e-...
  • 我们所熟知的MALTAB 能够根据函数公式绘出相应的函数图像,由此我们便可以利用已知两点坐标,求出两点之间线段的一元一次函数,并绘出图像。 二、绘图步骤 1.取定所要绘制图像的点,并明确需要绘制多少条直线 ...
  • 贝塞尔曲线绘制动态轨迹和canvas绘制两点之间直线,两种方式(都是从网上找的),做下记录: <template> <div class="testBeiSaiEr"> <div class='a'></div> <div></div&...
  • 1.先获取两点的坐标 2.计算弦长及旋转角度 3.绘制线 <div class="quality-analysis"> <div class="cnt-box"> <span class="selected-start"> <svg class="icon fs1...
  • 最近做一个用GDI+绘图,用到了对经纬度的处理,以下是将经纬度换算成直线距离的代码,留着以后有用,免得又忘记了。  private const double EARTH_RADIUS = 6378137;//地球半径,单位米  private double rad...
  • 最近有个项目,需要用到gdi+画图,并拖动 track bar 的时候在两点之间画一条直线,并根据 track bar 的值,在直线的对应位置显示一个移动的坐标点。 大致的解决思路如下: 1、确定两个点的连线属于坐标轴的第几...
  • 2. 利用布雷森汉姆算法在两点间画直线; 3. 将该直线上的点的颜色YUV图像上画出。 布雷森汉姆算法原理参考wiki: http://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm yuv图像转换原理参考:...
  • private LineRenderer ...//线 line = this.gameObject.AddComponent(); //只有设置了材质 setColor才有作用 line.material = new Material(Shader.Find("Particles/Additive")); line.SetVertexCount(2);//设置
  • public class lineDraw extends Applet{  int x1=-1,y1=-1;  boolean flag=true;  int x2,y2;  public void init() {  this.addMouseListener(new MouseAdapter() {  public void m...
  • //划两点之间的线的程序 glVertex2f(0.0,0.0);//顺序不影响位置,....一脸懵逼 glVertex2f(200.0,150.0);//超过范围也没关系,只显示范围内的 glEnd(); glFlush();//格式.... } int main(int argc,char** argv)...
  • C++语言实现一些基本算法(两点距离、点是否在直线上、点与直线的关系、两直线的夹角、两直线的交点、两个举行的重合面积等等)
  • opencv在两点间画箭头的方法

    千次阅读 2012-08-14 18:55:20
    opencv中没有可以直接箭头的方法,但是可以利用cvline方法来解决箭头的问题。箭头非常常用,图像中标定运动方向中经常用到,如光流法等。 以下是解决方案。 double alpha_angle;//弧度 CvScalar ...
  • Matlab任意两点之间绘制带箭头的直线 简单绘制两点任意两点之间。本来不像自己写的,可是网上的代码用起来不舒服,所以简单看看原理,原来就是个坐标变换而已。索性自己写了一份,分享如下: function drawarrow(x,y...
  • 12864液晶画直线

    2011-11-27 12:25:13
    用12864各种直线,用任意两点间直线,水平直线,垂直直线。这些多是基于点的基础得到的
  • 上面这个图便是我用matlab模拟的效果,过程很简单,就是用了泊松云盘采构建三角网格,之后一直三角型内部画直线即可, 泊松云盘采可以看一下图片三角化那篇: MATLAB 图片三角风格化(low poly) 三角型画线可以...
  • Unity两点之间生成一条直线

    千次阅读 2020-06-15 12:02:24
    private void GetBetweenPoint(Transform target, Vector3 start,Vector3 end,float percent=1f) { Vector3 normal = (end - start).normalized; float distance = Vector3.Distance(start, end);...
  • 如何用C语言已知两点坐标求直线方程? 如题 求大神解答 谢谢!!!
  • 百度地图画直线

    千次阅读 2017-07-10 10:12:25
    写百度地图的时候,有个需求是将地图中的一些点用直线连接起来(每点之间是直线)。官方提供的api是弧线,没有单独提供直线,但是提供了一个折线(PolyLine),我们可以利用画着线来画直线,这样就可以实现画直线...
  • 汇编语言画直线.rar

    2010-01-31 23:26:42
    此程序中包含了画直线的内容,我不想再花时间把它整理出可以画任意两点间的直线了,你自己完成吧,每转过45度就须把除数与被除数对掉位置,以保证商>1,还有就是要用到双字减法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,027
精华内容 16,410
关键字:

如何在两点之间画直线