精华内容
下载资源
问答
  • 三等分一个线段(tripartition(AB)) 输入:线段 AB 输出:将 AB 等分的两个,H、G 从 B 发出一条(任意一条)与 AB 不重合的射线 BC 任取 BC 上三点 D、E、F,使得 |BD|=|DE|=|EF|(对长度没用任何要求) ...

    三等分一个线段(tripartition(AB))


    这里写图片描述

    输入:线段 AB
    输出:将 AB 等分的两个点,H、G

    1. 从 B 发出一条(任意一条)与 AB 不重合的射线 BC
    2. 任取 BC 上三点 D、E、F,使得 |BD|=|DE|=|EF|(对长度没用任何要求)
    3. 连接 FA
    4. 过 E 做 AF 的平行线,交AB 于 H
    5. 过 D 做 AF(EH)的平行线,交 AB 于 G。
    展开全文
  • 一条单位长的线段,在上面任取两个,可以将线段分成个子线段,问这个子线段可以构成三角形的三条边的概率是多大? 假设三条边的长度从左到右分别为 x, y, 1-x-y。 两边之和大于第边,即任意一条边不能...

    一条单位长的线段,在上面任取两个点,可以将线段分成三个子线段,问这三个子线段可以构成三角形的三条边的概率是多大?

    假设三条边的长度从左到右分别为 x, y, 1-x-y。

    两边之和大于第三边,即任意一条边不能大于等于0.5,即0<x<0.5,0<y<0.5,x+y<1。

    两边之差小于第三边,(1-x-y)-x<y,即x+y>0.5。

    全集,单位线段上任取两点,需满足x>0,y>0,x+y<1,对应着函数y=1-x的线下方部分的大三角形。

    所求集合,还需满足x+y>0.5,即红色三角形部分。

    于是所求概率为0.25。




    展开全文
  • 已知线段两个端点的经纬度,把线段平分成三等分,求每个平分的坐标
  • 看完这篇博客,诚邀感兴趣的各位参与脑暴,在评论区留言讨论,谈谈你的想法方案或者问题。 1、功能需求 在画板上可以对铅笔图元进行圈选然后进行系列操作 如下图,粗略的展示下这个功能: 2、功能分析 ...

    转载请注明出处:https://blog.csdn.net/sunmmer123

    正文开始前,先念叨几句,自2018年停博之后,再次提笔开始记录。
    感谢时隔2年无更新的情况下,还未跑路的粉丝们!
    感谢大家对我前俩篇关于音视频博文的支持!
    希望这篇文章在自我复盘的同时也能帮助到大家!

    看完这篇博客,诚邀感兴趣的各位参与脑暴,在评论区留言讨论,谈一谈你的想法方案或者问题。


    1、功能需求

    在画板上可以对铅笔图元进行圈选然后进行一系列操作
    如下图,粗略的展示下这个功能:
    在这里插入图片描述

    2、功能分析

    • 对于这个问题,在处理一段完整的铅笔绘图的时候很简单
    • 对于被橡皮擦除了一部分铅笔图元来说,我们就需要把这段图元做拆解了,分成多段铅笔图元
    • 画满整个屏幕的时候,线段巨多,那么分解的工作就会沉重,效率就会低下,自然呈现的效果就是卡顿了

    3、问题总结

    那么如何将一个完整铅笔图元拆成多个,怎样拆能更快就是具体要思考和解决的问题了

    4、我的实现方案

    • 将绘制的图元绑定相对应得矩阵,也就是说每一笔铅笔绘图或者擦除区域都有他们自己的一个二维数组,而这个二维数组就是一个矩阵
    • 这个二维数组里面存放的信息只有0和1,0未被占用,1占位标明该像素被占用
    • 当擦除区与铅笔绘图有相交时,遍历将铅笔绘制的这个图元的矩阵所对应的位置的信息改成0,表示已经被擦除了,像素没有被占用了
    • 最后遍历矩阵,每到为0的时候就说明是一段图元的结尾位置,这样就能将一个线段在经历擦除之后生成多段了

    看到了这,已经是晕头转向了,我们具体看下代码

    1、俩个对象

    • 铅笔
    • 橡皮擦
    • 对象里分别存放的信息就是画笔对象以及点数据和对应的矩阵对象
      在这里插入图片描述在这里插入图片描述

    2、关于矩阵

    • 其实也就是一个二维数组,绘制的每一个图形都有他自己的所在的矩阵区域
    • 简单的理解就是你画了一条线,将这条线转换成一个矩阵
    • 矩阵对象里面存放的信息:顶点坐标,长宽、二维数组
      在这里插入图片描述
    • 如图,也就是绿框这个区域:
      在这里插入图片描述

    3、将图元转成矩阵

    在onTouchEvent中只有当up的时候,才去将生成对应得矩阵对象
    具体流程如下:

    • 获取到绘制Path上所有的点,铅笔的就是拿这个铅笔path,橡皮擦的话就拿橡皮擦的path
    • 通过computeBounds方法获取path的闭合区域边界
    • 确定这个矩阵的顶点坐标以及宽高
    • 根据宽高初始化定义矩阵的二维数组
    • 循环所有的点,将点对应的二维数组索引的这个地方数据设置为1,表示该像素被占用
      在这里插入图片描述

    4、过滤线段(取出真正被擦除的线段)

    当橡皮擦抬手,设置完橡皮擦的矩阵对象之后,就开始处理分段逻辑

    • 判断橡皮擦移动擦除的区域是否与铅笔图元(线段)相交
    • 取出相交的铅笔图元(线段)整理到一个几个中
    • 以上执行这种是否相交过滤取线段的方法属于一个小细节优化处,因为可能在屏幕上画了好多条线段,我擦除的可能只是一条线段的区域,那么去分段的时候遍历所有的线段集合就没有必要了,所以先把与擦除区域有相交的线段取出
    • 判断相交的主要逻辑就是通过computeBounds方法获取橡皮擦的区域和线段的区域,调用系统是否相交的方法判断在这里插入图片描述

    5、处理线段矩阵里的信息

    • 接着循环橡皮擦矩阵区域,当遇到像素点为1的时候,将相交的这笔线段对应的矩阵这个位置数据设置为0,表示已经被擦除了,没有像素被占用了
      在这里插入图片描述

    看到这,肯定一直疑惑这个矩阵他到底是用来干嘛的?用0,1具体是要做什么事?

    • 博文从标题开始就在围绕一个问题"如何将一条线段分成多段",那么分段分段,只有具体一个标识告诉我这里开始被截断了,我才能分
    • 所以这个矩阵的作用就当于帮助我分段的工作,0,1就是告诉我是否是截断了
    • 回顾下铅笔图元对象Pen,它里面有个点集合变量,一条线段就是由多个点组成的,这个点对象存放的x,y坐标和一个是否被擦除的标识布尔值
    • 接下去就把点里的这个是否擦除标识根据矩阵0,1做判断设置值,循环遍历所有点,获取矩阵索引,判断当前位置是否1,是的话标识该点没有被擦除,0的话就是这个点被擦除了
      在这里插入图片描述

    6、开始分段

    经过一系列数据操作之后,开始真真实实的分段处理吧

    • 一条线段中所有点都知道是否是被截断得了,那么就循环遍历就好了,遇到标识了被擦除的点的时候,就生成一个新的铅笔对象吧
      在这里插入图片描述

    7、遗留问题

    • 当我画面整个屏幕的时候,此时这个线段中的点数据是很多的,同时他的整个矩阵区域也是很大的,当我擦除区域也很大的时候,分段过程繁重,整体给的一个效果就是慢下来了
    • 如下图,演示一下:
      在这里插入图片描述

    总结

    至此,整个流程实现方案就说完了,不知道大家有没有看懂呢。如果你有兴趣,或者遇到类似功能需要完成以及有更好的实现方案,可以下方评论区留言讨论,需要源码研究的小伙伴也可留言私信我!!

    展开全文
  • 1. ST_LineInterpolatePoint 取一条线段(第一个参数)所在比例(第二个参数)的一个插入geometry ST_LineInterpolatePoint(geometry a_linestring, float8 a_fraction);2. ST_DISTANCE(ST_TRANSFORM(geometry g1,...

    1. ST_LineInterpolatePoint 取一条线段(第一个参数)所在比例(第二个参数)的一个插入点

    geometry ST_LineInterpolatePoint(geometry a_linestring, float8 a_fraction);


    ###2. ST_DISTANCE(ST_TRANSFORM(geometry g1,900913),ST_TRANSFORM(geometry g2,900913)) 计算两个点之间的距离(单位米)
    ST_Distance
    ST_Transform


    ###3.st_length(ST_Transform(geometry g1,900913)) 计算长度,单位米
    ST_Length


    ###4.如果想把线段均分为n份(不考虑长度),则可以直接迭代使用ST_LineInterpolatePoint取n个点(1/n,2/n,3/n,1)或(0,1/n,2/n,n-1/n);如果等距离均分,比如m米 (m小于n),则分为(n/m )+1 个点(因为起始点为0,1),然后在使用ST_LineInterpolatePoint迭代(n/m )+1次。

    展开全文
  • n条线段可以组成多少种三角形

    千次阅读 2019-04-08 10:50:26
    Ocean最爱三角形,现在Ocean手里有n条线段,Ocean现在想知道,这n条线段可以组成多少种三角形。 输入 个整数n (3≤n≤3000) 接下来n 个整数x(1≤x≤10000) 输出 三角形的种类数 样例输入 6 3 2 4 2 ...
  • 2018年秋八年级数学上册第13章全三角形13.4尺规作图1作一条线段等于已知线段2作一个角等于已知角作业新版华东师大版
  • 题目:现需要沿某道路间距安装路灯,请给出路灯的位置及其坐标 实现思路: 、数字化道路,获取Road线状矢量数据(如shapefile文件)。 二、在开始编辑状态下,执行Divide命令,按照题目要求将线段分割为...
  • 图中有一条直线AB,现在我们要做他的三等分点在平面内任取一点C,使C不在AB确定的直线上即可。然后连接AC,BC 取AC中点D,连接BD 然后取BD中点E,连接CE并延长与AB相交于F,则F就是AB的一个三等分点。 当时高中的...
  • 20200826 visio等分线段

    2020-08-26 14:01:03
  • 在对图进行计算时,很常用的个操作就是求若干条线段的交点,比如对图的叠加、截窗,需要频繁地计算线段交点,如果求交算法效率很低,上层的算法再优秀也表现不出好的性能。 先考虑个很简单...
  • N条线段求交的扫描算法

    千次阅读 2017-10-01 21:17:13
    转载自: http://johnhany.net/2013/11/sweep-algorithm-for-segments-intersection/ ...N条线段求交的扫描线算法 ... 在对图进行计算时,很常用的个操作就是求若干条线段的交点,比如对图的叠加、截窗,需要频
  • 线段的最短距离算法

    千次阅读 2019-07-09 11:25:35
    线段最短距离的运算与到直线的最短距离的运算二者之间存在一定的差别,即求线段最短距离时需要考虑参考在沿线段方向的投影是否在线段上,若在线段上才可采用到直线距离公式,如图1所示。 图1(a...
  • 线段的最短距离——矢量法

    万次阅读 2018-04-02 15:29:24
    矢量法推导: 求P到线段AB的最短距离。分成以下种情况(a),(b),(c)。所以可以先根据计算出r的值,进而对应计算A B C 和 P之间的距离即可。特殊情况:当P在线段AB上:计算出来r仍然是 1&gt;r&gt...
  • 平面内两条线段位置关系的判定在很多领域都有着广泛的应用,比如游戏、CAD、图形处理,而两线段交点的求解又是该算法中重要的环。本文将尽可能用通俗的语言详细的描述种主流且性能较高的判定算法。 外积,又...
  • 问题:已知维空间中四A、B、C、D,如何判断线段AB与CD是否相交,若相交则求出交点。 分析: AB、CD要相交,则AB、CD必须要在同一平面内 快速排斥和跨立实验判断是否相交 几何法分析求出交点 2 求解 2.1 AB、...
  • 二维解法,令x为第段长度,y为第二段长度,则x、y确定后,第段长度z也确定了。 可行域:x+y&lt;1,x&gt;0,y&gt;0x+y&lt;1,x&gt;0,y&gt;0x+y<1,x>0,y>0 解空间:x&gt;0.5,y...
  • timus 1215. Exactness of Projectile Hit URAL 解题报告 题目描述真是无语,大概是一个导弹有一个落点,给定坐标; 然后有一个目标区域,问导弹的最小轰炸直径是多少时才能...不是的话,判断到每一条线段的距离即
  • Canvas绘图环境中有些属于立即绘制图形方法,有些绘图方法是基于路径的。 立即绘制图形方法仅有两个strokeRect(),fillRect(),虽然strokezText(),fillText()方法也是立即绘制的,但是...绘制一条线段 Canvas绘图环境中
  • 教程介绍、教程目录能在README里查阅。 传送门:https://github.com/827652549/CanvasStudy 线段介绍 Canvas中绘图环境与线段有关的属性: 属性 描述 类型 取值范围 默认值 lineWi...
  • 线段组成三角形的概率问题

    千次阅读 2010-10-31 23:07:00
    一条长度为l的线段,随机在其上选2个,将线段分为3段,问这3个子段能组成一个三角形的概率是多少?   <br />1/4。 假设我们选择的两个的坐标是x和y(先假设x ):  那么由三角形...
  • 线段

    千次阅读 2011-07-28 15:20:55
    1、概述线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,它基本能保证每个操作的复杂度为O(lgN)。2、线段树基本操作线段树的基本操作主要包括构造...
  • 提出种在经纬坐标系中,计算线段距离的简单方法,这种方法比较实用,而且不存在二次误差,实用于广大求偏航、出区域算法中
  • 背景在信息学竞赛中,我们经常会碰到...这时,我们需要种高效的数据结构来处理这样的问题,在本文中,我们介绍种基于分治思想的数据结构—-线段树。二 简介线段树是种二叉树形结构,属于平衡树的种。它将
  • 一般图纸设计中的时候,在CAD中有时我们想得到直线或曲线的等分点,有时我们想沿直线或曲线等距或等分排列图形,这个时候该怎么办呢?但其实在CAD很早的版本就提供了定数等分和定距等分的功能,可能只是大家没有发现...
  • 因此我们把方法修改成下面这样就会绘制出一条线段 function drawLine(){ cxt.moveTo( 50, 50 ); cxt.lineTo( 200, 200 ); cxt.stroke(); } 我们只使用lineTo()也是能在画布中绘制出线段的...
  • Quartz 2D是个二维绘图引擎,Quartz 2D 的API...1.作用:绘制图形 : 线段\三角形\矩形\圆\圆弧 绘制文字 绘制\生成图片(图像) 读取\生成PDF 截图\裁剪图片 自定义UI控件 2.图形上下文 (Graphics Context) :
  • 如何判断三条线段组成什么三角形

    千次阅读 2016-07-02 15:52:05
    //已知三条长度的线段,是否能组成三角形 int a=3,b=5,c=7; if(a+b>c && a+c>b && b+c>a){ //是三角形 if(a*a+b*b>c*c && a*a+c*c>b*b && b*b+c*c>a*a){ //是锐角三角形 //System.out.println("是锐角三角形")...
  • matlab画图选项表+标记大小调整+线段图如何绘制

    万次阅读 多人点赞 2018-10-16 20:41:05
    Matlab中,plot绘图的曲线线宽、标记大小、标记边框颜色和填充颜色的设置 1、LineWidth:用于设置线宽,其后的ProperValue选项为 数值 ,如0.5,1,2.5,单位为points​; 2、MarkerEdgeColor:用于设置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,630
精华内容 8,652
关键字:

一条线段的三等分点