精华内容
下载资源
问答
  • python matplotlib 如何画点 而不要画点之间连线
    千次阅读
    2020-12-24 01:03:44

    匿名用户

    1级

    2010-12-26 回答

    plot(x,y,marker='*')

    用marker参数来指定,或者用set_marker函数,参看matplotlib的帮助

    >>>from matplotlib.lines import Line2D

    >>> help(Line2D.set_marker)

    def set_marker(self, marker):

    """

    Set the line marker

    ========== ==========================

    marker description

    ========== ==========================

    '.' point

    ',' pixel

    'o' circle

    'v' triangle_down

    '^' triangle_up

    '

    '>' triangle_right

    '1' tri_down

    '2' tri_up

    '3' tri_left

    '4' tri_right

    's' square

    'p' pentagon

    '*' star

    'h' hexagon1

    'H' hexagon2

    '+' plus

    'x' x

    'D' diamond

    'd' thin_diamond

    '|' vline

    '_' hline

    TICKLEFT tickleft

    TICKRIGHT tickright

    TICKUP tickup

    TICKDOWN tickdown

    CARETLEFT caretleft

    CARETRIGHT caretright

    CARETUP caretup

    CARETDOWN caretdown

    'None' nothing

    ' ' nothing

    '' nothing

    ========== ==========================

    ACCEPTS: [ '+' | '*' | ',' | '.' | '1' | '2' | '3' | '4'

    | '' | 'D' | 'H' | '^' | '_' | 'd'

    | 'h' | 'o' | 'p' | 's' | 'v' | 'x' | '|'

    | TICKUP | TICKDOWN | TICKLEFT | TICKRIGHT

    | 'None' | ' ' | '' ]

    """

    更多相关内容
  • 今天小编就为大家分享一篇python matplotlib 在指定的点之间连线方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了js实现两点之间画线的方法,涉及javascript图形绘制的相关技巧,需要的朋友可以参考下
  • js 画两点之间连线

    万次阅读 2020-01-03 17:40:04
    文章目录思路描述根据css3角度旋转两点之间,利用离散的点,一个一个的拼凑CSS3 角度变换 案例原理说明手动添加两点之间连线 思路描述 根据css3角度旋转 根据两点,计算出两点之间的夹角,然后利用css3 旋转的角度...

    思路描述

    根据css3角度旋转

    根据两点,计算出两点之间的夹角,然后利用css3 旋转的角度,画出斜线

    两点之间,利用离散的点,一个一个的拼凑

    1. 计算两点之间位移
    2. 根据长的一条边,一个像素一个像素的拆分为点,然后一个一个拼凑

    案例

    案例一:CSS3 角度变换

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>Document</title>
        <script src="./demo/jquery.min.js"></script>
      </head>
      <style lang="">
          .point{
              position: absolute;
              border: 5px solid red;
          }
      </style>
      <body>
          <div class="point" style="top:342px;left:513px"></div>
          <div class="point" style="top:450px;left:468px"></div>
          <div style="position:absolute;border-top: 1px solid red;width:117px;top:342px;left:513px;transform:rotate(112.61986494804043deg);transform-origin: 0 50%;"></div>
      </body>
      <script>
          let bodyDiv = document.getElementsByTagName('body')[0]
        // 获得人物中心和鼠标坐标连线,与y轴正半轴之间的夹角
        function getAngle(x1, y1, x2, y2) {
          // 获得人物中心和鼠标坐标连线,与y轴正半轴之间的夹角
          var x = x1 - x2;
          var y = y1 - y2;
          var z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
          var cos = y / z;
          var radina = Math.acos(cos); // 用反三角函数求弧度
          var angle = 180 / (Math.PI / radina); // 将弧度转换成角度
          if (x2 > x1 && y2 === y1) {
            // 在x轴正方向上
            angle = 0;
          }
          if (x2 > x1 && y2 < y1) {
            // 在第一象限;
            angle = angle - 90;
          }
          if (x2 === x1 && y1 > y2) {
            // 在y轴正方向上
            angle = -90;
          }
          if (x2 < x1 && y2 < y1) {
            // 在第二象限
            angle = 270 - angle;
          }
          if (x2 < x1 && y2 === y1) {
            // 在x轴负方向
            angle = 180;
          }
          if (x2 < x1 && y2 > y1) {
            // 在第三象限
            angle = 270 - angle;
          }
          if (x2 === x1 && y2 > y1) {
            // 在y轴负方向上
            angle = 90;
          }
          if (x2 > x1 && y2 > y1) {
            // 在四象限
            angle = angle - 90;
          }
          return angle;
        }
        // 第一个点的坐标
        let firstPoint = {
            xPoint: 513,
            YPoint: 342,
        }
        // 第二个点的坐标
        let secondPoint = {
            xPoint: 468,
            YPoint: 450,
        }
        // 计算出两个点之间的距离
        let line = Math.sqrt(Math.pow((firstPoint.xPoint - secondPoint.xPoint), 2) + Math.pow((firstPoint.YPoint - secondPoint.YPoint), 2))
        // 设置一个div 宽度为 两点之间的距离,并且以 transform-origin: 0 50% 为圆心旋转,角度已经算出来
        let lineHtmlStr = `<div style="position:absolute;border-top: 1px solid red;width:${line}px;top:${firstPoint.YPoint}px;left:${firstPoint.xPoint}px;transform:rotate(${getAngle(firstPoint.xPoint,firstPoint.YPoint,secondPoint.xPoint,secondPoint.YPoint)}deg);transform-origin: 0 50%;"></div>`;
        // 添加到body 后面
        bodyDiv.append(lineHtmlStr)
        
      </script>
    </html>
    

    案例二:手动添加两点之间的连线

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>Document</title>
        <script src="./demo/jquery.min.js"></script>
      </head>
      <style lang="">
        .point {
          position: absolute;
          border: 5px solid red;
        }
      </style>
      <body>
        <button id="myBtn">创建连线</button>
        <div class="point" style="top:342px;left:513px"></div>
        <div class="point" style="top:450px;left:468px"></div>
        <div
          style="position:absolute;border-top: 1px solid red;width:117px;top:342px;left:513px;transform:rotate(112.61986494804043deg);transform-origin: 0 50%;"
        ></div>
      </body>
      <script>
        document.getElementById("myBtn").onclick = function(e) {
          e.stopPropagation();
          document.addEventListener("click", createLine, false);
        };
    
        function createLine() {
          let firstPoint = null;
          let secondPoint = null;
    
          // 创建节点
          function createPoints(event) {
            if (firstPoint === null) {
              firstPoint = {};
              firstPoint.xPoint = event.pageX;
              firstPoint.YPoint = event.pageY;
            } else {
              secondPoint = {};
              secondPoint.xPoint = event.pageX;
              secondPoint.YPoint = event.pageY;
            }
    
            if (firstPoint !== null && secondPoint !== null) {
              let lineLength = calcLine(firstPoint, secondPoint);
              let angle = getAngle(
                firstPoint.xPoint,
                firstPoint.YPoint,
                secondPoint.xPoint,
                secondPoint.YPoint
              );
              // 设置一个div 宽度为 两点之间的距离,并且以 transform-origin: 0 50% 为圆心旋转,角度已经算出来
              let lineHtmlStr = `<div style="position:absolute;border-top: 1px solid red;width:${lineLength}px;top:${firstPoint.YPoint}px;left:${firstPoint.xPoint}px;transform:rotate(${angle}deg);transform-origin: 0 50%;"></div>`;
              let bodyDiv = document.getElementsByTagName("body")[0];
              // 添加到body 后面
              bodyDiv.innerHTML = bodyDiv.innerHTML + lineHtmlStr;
              //   bodyDiv.appendChild(lineHtml);
              document.removeEventListener("click", createPoints);
            }
          }
    
          // 计算连线
          function calcLine(firstPoint, secondPoint) {
            // 计算出两个点之间的距离
            let line = Math.sqrt(
              Math.pow(firstPoint.xPoint - secondPoint.xPoint, 2) +
                Math.pow(firstPoint.YPoint - secondPoint.YPoint, 2)
            );
            return line;
          }
    
          // 计算角度
          // 获得人物中心和鼠标坐标连线,与y轴正半轴之间的夹角
          function getAngle(x1, y1, x2, y2) {
            // 获得人物中心和鼠标坐标连线,与y轴正半轴之间的夹角
            var x = x1 - x2;
            var y = y1 - y2;
            var z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
            var cos = y / z;
            var radina = Math.acos(cos); // 用反三角函数求弧度
            var angle = 180 / (Math.PI / radina); // 将弧度转换成角度
            if (x2 > x1 && y2 === y1) {
              // 在x轴正方向上
              angle = 0;
            }
            if (x2 > x1 && y2 < y1) {
              // 在第一象限;
              angle = angle - 90;
            }
            if (x2 === x1 && y1 > y2) {
              // 在y轴正方向上
              angle = -90;
            }
            if (x2 < x1 && y2 < y1) {
              // 在第二象限
              angle = 270 - angle;
            }
            if (x2 < x1 && y2 === y1) {
              // 在x轴负方向
              angle = 180;
            }
            if (x2 < x1 && y2 > y1) {
              // 在第三象限
              angle = 270 - angle;
            }
            if (x2 === x1 && y2 > y1) {
              // 在y轴负方向上
              angle = 90;
            }
            if (x2 > x1 && y2 > y1) {
              // 在四象限
              angle = angle - 90;
            }
            return angle;
          }
          // 解决第一次绑定的时候执行方法
          //   setTimeout(function() {
          document.removeEventListener("click", createPoints);
          // 添加节点
          document.addEventListener("click", createPoints, false);
          //   }, 0);
        }
      </script>
    </html>
    
    
    展开全文
  • Unity UGUI中两点之间连线的通用实现

    千次阅读 多人点赞 2019-12-21 16:15:07
    同时也实现了手指和指点ui控件点之间连线 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class DrawLine : MonoBehav...

    这里实现两控件之间进行连线,线段使用图片完成,主要是涉及到坐标的转换和图片的缩放
    同时也实现了手指和指定ui控件点之间的连线

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
    
    public class DrawLine : MonoBehaviour {
    
        public Canvas canvas;
        public RectTransform fingerLine;
        
        //测试起点位置
        public RectTransform start;
        
        //手指或鼠标在屏幕上的点击位置
        private Vector3 touchPos;
    
        private bool isPress = false;
    
        private void Update()
        {
            //下面为测试连接鼠标位置
            
            if(Application.isMobilePlatform)
            {
                for(int i = 0; i < Input.touchCount; ++i)
                {
                    UnityEngine.Touch touch = Input.GetTouch(i);
                    if(touch.phase == TouchPhase.Began)
                    {
                        isPress = true;
                        touchPos = touch.position;
                    }
                    else
                    {
                        isPress = false;
                    }
                }
            }
            else
            {
                if(Input.GetMouseButton(0))
                {
                    isPress = true;
                    touchPos =Input.mousePosition;
                }
                else
                {
                    isPress = false;
                }
            }
    
            if (isPress)
            {
                fingerLine.gameObject.SetActive(true);
                UpdateFingerLine(start.position);
            }
            else
            {
                fingerLine.gameObject.SetActive(false);
                
            }
            
        }
    
    
        //针对手指位置和对应UI控件之间的连线需要转换坐标处理
        private void UpdateFingerLine(Vector3 startPos)
        {
            Vector3 uiStartPos = Vector3.zero;
            Vector3 uitouchPos = Vector3.zero;
            if(canvas.renderMode == RenderMode.ScreenSpaceOverlay)
            {
                uiStartPos = startPos;
                uitouchPos = touchPos;
            }
            else if(canvas.renderMode == RenderMode.ScreenSpaceCamera)
            {
                Camera camera = canvas.worldCamera;
    
                //UI世界的起点世界坐标转换为UGUI坐标
                Vector2 screenStartPos = RectTransformUtility.WorldToScreenPoint(camera, startPos);
                RectTransformUtility.ScreenPointToWorldPointInRectangle(canvas.GetComponent<RectTransform>(), screenStartPos,
                    camera, out uiStartPos);
    
                //鼠标坐标转换为UGUI坐标
                RectTransformUtility.ScreenPointToWorldPointInRectangle(canvas.GetComponent<RectTransform>(), touchPos,
                    camera, out uitouchPos);
            }
    
            fingerLine.pivot = new Vector2(0, 0.5f);
            fingerLine.position = startPos;
            fingerLine.eulerAngles = new Vector3(0, 0, GetAngle(uiStartPos, uitouchPos));
            fingerLine.sizeDelta = new Vector2(GetDistance(uiStartPos, uitouchPos), fingerLine.sizeDelta.y);
        }
    	
    
    
       //通用设置线的,如果只设置两点之间连线,只需要初入对应的ui控件的Position
       //针对手指位置和对应UI控件之间的连线需要转换坐标处理
        private RectTransform SetLine(RectTransform lineSource, Vector3 startPos, Vector3 endPos)
        {
            RectTransform line = Instantiate(lineSource, lineSource.parent);
            line.pivot = new Vector2(0, 0.5f);
            line.position = startPos;
            line.eulerAngles = new Vector3(0, 0, GetAngle(startPos, endPos));
            line.sizeDelta = new Vector2(GetDistance(startPos, endPos), lineSource.sizeDelta.y);
            return line;
        }
    
        private float GetAngle(Vector3 startPos, Vector3 endPos)
        {
            Vector3 dir = endPos - startPos;
            float angle = Vector3.Angle(Vector3.right, dir);
            Vector3 cross = Vector3.Cross(Vector3.right, dir);
            float dirF = cross.z > 0 ? 1 : -1;
            angle = angle * dirF;
            return angle;
        }
    
    
        private float GetDistance(Vector3 startPos, Vector3 endPos)
        {
            float distance = Vector3.Distance(endPos, startPos);
            return distance * 1 / canvas.transform.localScale.x;
        }
    }
    
    
    
    

    补充效果图在这里插入图片描述

    展开全文
  • 问题描述:matlab画图,画出任意两点间的连线图,请高人帮忙呀,谢谢!谢谢!点坐标:x1=[1000,2711];x2=[1210,2770];x3=[1041,2610];x4=[1499,2528];x5=[850,2482];x6=[1770,2180];x7=[1970,2218];x8=[1790,2155];x9=...

    问题描述:

    matlab画图,画出任意两点间的连线图,请高人帮忙呀,谢谢!谢谢!

    点坐标:x1=[1000,2711];

    x2=[1210,2770];

    x3=[1041,2610];

    x4=[1499,2528];

    x5=[850,2482];

    x6=[1770,2180];

    x7=[1970,2218];

    x8=[1790,2155];

    x9=[1333,2175];

    x10=[1140,2100];

    x11=[1320,2070];

    x12=[1215,2052];

    x13=[1160,1870];

    x14=[776,1799];

    x15=[1360,1750];

    x16=[1520,1721];

    x17=[1420,1470];

    x18=[1770,1390];

    x19=[1380,1280];

    x20=[1120,1675];

    x21=[978,1668];

    x22=[910,1511];

    x23=[1220,1424];

    x24=[1020,1330];

    x25=[1081,1160];

    x26=[600,1511];

    x27=[615,1498];

    x28=[720,1440];

    x29=[680,1370];

    x30=[702,1290];

    x31=[731,1220];

    x32=[670,1160];

    x33=[810,1120];

    x34=[708,1131];

    x35=[572,1050];

    x36=[878,656];

    x37=[888,592];

    x38=[417,630];

    点坐标还有这种方式

    x=[1000,1210,1041,1499,850,1770,1970,1790,1333,1140,1320,1215,1160,776,1360,1520,1420,1770,1380,1120,978,910,1220,1020,1081,600,615,720,680,702,731,670,810,708,572,878,888,417];

    y=[2711,2770,2610,2528,2482,2180,2218,2155,2175,2100,2070,2052,1870,1799,1750,1721,1470,1390,1280,1675,1668,1511,1424,1330,1160,1511,1498,1440,1370,1290,1220,1160,1120,1131,1050,656,592,630];

    只要能编出来就可以,谢谢!

    1个回答

    分类:

    数学

    2014-09-23

    问题解答:

    我来补答

    x = [1000,2711;1210,2770;1041,2610;1499,2528;850,2482;1770,2180;1970,2218;...

    1790,2155;1333,2175;1140,2100;1320,2070;1215,2052;1160,1870;776,1799;...

    1360,1750;1520,1721;1420,1470;1770,1390;1380,1280;1120,1675;978,1668;...

    910,1511;1220,1424;1020,1330;1081,1160;600,1511;615,1498;720,1440;...

    680,1370;702,1290;731,1220;670,1160;810,1120;708,1131;572,1050;...

    878,656;888,592;417,630;];

    figure('Name','Point-Line');

    hold on;

    % plot line

    for n = 1:length(x)-1

    for m = (n+1):length(x)

    plot(x([n,m],1),x([n,m],2),'b-');

    end

    end

    % plot point

    plot(x(:,1),x(:,2),'r*'); hold off;

    点多,图就难看,好难看,

    再问: 这个是任意两点间的吗?这么密集?

    再答: 当然了,你有38个点,那么每个点就必须连37条线,想想总共有多少条?38*37/2=703

    展开全文阅读

    展开全文
  • 画任意两点之间连线

    千次阅读 2016-08-11 16:49:00
    function drawLine(obj1, obj2){ var oneTop = $(obj1).position().top; var oneLeft = $(obj1).position().left; var twoTop = $(obj2).position().top; ... var twoLeft = $(obj2).position().left;...
  • 情况1:已知两点坐标 已知:两点坐标 p1,p2想把他们连接起来,怎么办? import matplotlib.pyplot as plt p1 = [5, 23] p2 = [16, 50] # 第一个参数是x的取值范围 第二个参数是y的取值范围 plt.plot([p1[0], p2[0...
  • 使用二阶贝塞尔曲线画出两点之间连线二阶贝塞尔曲线公式控制点的位置 游戏需要手动生成多个点来连接两个关卡,以达到更加可视化的目的。 最终效果如图: 二阶贝塞尔曲线公式 B(t) = (1-t)2P0 + 2t(1-t)P1+t2P2,...
  • MATLAB点与点之间连线

    千次阅读 2021-10-10 15:01:20
    MATLAB点与点之间连线 首先先绘制个点 x1=3; y1=3; x2=6; y2=6; plot(x1,y1,'*r',x2,y2,'*g'); 效果图: 其中(3,3)是红点,(6,6)是绿点 然后把这个点用直线连接起来 line([x1,x2],[y1,y2]); 效果图: ...
  • 在Visio实现任意两点之间连线

    万次阅读 多人点赞 2018-12-05 16:35:08
    在Visio有时候很难实现两点之间连线,往往连线会胡乱跳转到其他位置,本人在网上查找了各种方法,网上提到最多的方法是取消自动连接,然而本人实验上百次也没什么卵用,连线还是会自动跳转到其他位置。...
  • 前端css实现两点连线

    千次阅读 2020-12-22 12:45:16
    // dots是的集合 : Arraydots.... {// 最后一个没有连线if (!dot[index + 1]) return;const AB = {x: dots[index + 1].x - dot.x,y: dots[index + 1].y - dot.y,}const BC = {x: 0,y: 1,}// 向量的模const a = ...
  • Visio实现任意两点之间连线

    万次阅读 2019-10-20 11:29:40
    想实现的效果:如下图所示,想要实现的是像...在Visio有时候很难实现两点之间连线,往往连线会胡乱跳转到其他位置。 为了圆满解决这个问题,我们来分析一下出现该问题的原因——没有正确的连接点!所以真正有...
  • /// <... /// 返回个坐标点连线上的随机一点 /// </summary> /// <param name="post1"></param> /// <param name="post2"></param> /// <returns></...
  • ArcGIS,实现两点连线

    万次阅读 2018-12-12 17:33:42
    转载:ArcGIS,一个点集里的两两连线,比如有4个,就连3+2+1=6条线 一、目标 一个点集里的两两连线,比如有4个,则连3+2+1=6条线;有38个,则连37+36+35+···+3+2+1=703条线,其原始坐标数据及最终...
  • 原文出处:http://www.hangge.com/blog/cache/detail_1087.html开发,有时需要计算个坐标组成的向量与坐标轴之间的夹角,然后我们用计算结果,来对元件进行旋转(rotation)等操作。下面分别演示与X轴、Y轴...
  • css 任意连接成一条线,没有使用到canvas。纯css实现。这个只是一个demo。您可以参考
  • 前端两点连线,svg

    千次阅读 2020-06-29 17:09:02
    1.创建线条 首先引入<script type="text/javascript" src="./js/drawline.js">...//前个参数是开始的x轴和y轴,后个参数结束的x轴和y轴,第五个参数是线条的颜色 3.设置线条的样式 $('line').attr
  • 最近项目用到百度地图,由于司机错误使用导致上传的GPS点天少,两点之间的距离太长没有GPS点,现做了一个小算法来解决此问题(地图视为平面图形)代码如下。 //每1000米算作一个点 var pointA = new BMap.Point(ax...
  • 贝塞尔曲线绘制动态轨迹和canvas绘制两点之间的直线,两种方式(都是从网上找的),做下记录: <template> <div class="testBeiSaiEr"> <div class='a'></div> <div></div&...
  • python 两点连线 matplotlib

    万次阅读 2019-08-17 17:50:39
    1. 若想要将两点之间连接起来: import matplotlib.pyplot as plt p1 = [x1, y1] #点p1的坐标值 p2 = [x2, y2] #点p2的坐标值 plt.plot([x1,x2],[y1,y2]) #简单理解就是:先写x的取值范围,再写y的取值范围 2. 想...
  • python matplotlib 在指定的点之间连线

    万次阅读 多人点赞 2018-01-27 23:23:33
    为了找到matplotlib在点之间连线的方法真是费了好大功夫,最后还是决定用简单的 plt.plot 来解决。如果有好多对点,则可以通过循环实现连接,还可以用 plt.arrow 画箭头,具体可参考这里 import matplotlib...
  • 两点之间连线的角度

    千次阅读 2016-11-08 07:52:25
    function getAngle(px1, py1, px2, py2) { //两点的x、y值 x = px2-px1; y = py2-py1; hypotenuse = Math.sqrt(Math.pow(x, 2)+Math.pow(y, 2)); //斜边长度 cos = x/h
  • 最短路径点连线

    2018-02-20 09:09:34
    平面上有n个点(n),每个点的坐标均在-...其中的一些点之间连线。  若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离。现在的 任务是找出从一点到另一点之间的最短路径。
  • 计算两点之间的角度公式是: ...假设点一是坐标原点(0,0)点二是(1,0)则这两点之间连线角度是:0; 假设点一是坐标原点(0,0)点二是(1,1)则这两点之间连线角度是:45; 假设点一是坐标...
  • 地图、百度地图、自定义多点连线轨迹,安卓版
  • 安卓百度地图,实现多点之间连线。可根据自己需要自定义路线。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,913
精华内容 18,365
关键字:

两点之间所有的连线中