#MATLAB之画确定区域内互不接触的球
程序要求:在确定区域内,画互不接触的球
输入:球的个数N,半径D,两球之间的最小距离K倍(D的倍数)
输出:各圆心的三维坐标,并作图显示

程序:

  function [xdata,ydata,zdata] = dataBall2(N,D,K)
%N为球的个数,D为球的半径,K为两球之间的距离(D的倍数)
%返回球心的坐标
%命令行测试: [xdata,ydata,zdata] = dataBall2(50,1.5,4); S=[300,300,200]; %区域大小
p = ones(1,3);
p(1)=(S(1)- D).*rand(1); %产生一个随机点
p(2)=(S(2)- D).*rand(1);
p(3)=(S(3)- D).*rand(1);
A=p'; %第一点坐标记录进矩阵A中,转置运算
for ii=2:N
p(1)=(S(1)- D).*rand(1); %产生一个随机点
p(2)=(S(2)- D).*rand(1);
p(3)=(S(3)- D).*rand(1);
while any((A(1,:)-p(1)).^2+(A(2,:)-p(2)).^2+(A(3,:)-p(3)).^2 < K*K*D*D) %距离判断,不满足条件则继续生成新的点
p(1)=(S(1)- D).*rand(1); %产生新的随机点
p(2)=(S(2)- D).*rand(1);
p(3)=(S(3)- D).*rand(1);
end
A = [A,p']; %保存满足条件的新点到矩阵A
end
xdata = A(1,:);
ydata = A(2,:);
zdata = A(3,:); %已知圆心和半径作圆:半径D,圆心xdata,ydata,zdata
for i = 1:N
[x,y,z] = ellipsoid(xdata(i),ydata(i),zdata(i),D,D,D); %利用椭圆函数画球
surf(x,y,z) %画出来球
hold on
end
axis equal %保证各个维度的长短一致 end

运行结果:

坐标:

总的球图:

部分区域放大后:

MATLAB之画确定区域内互不接触的球的更多相关文章

  1. MATLAB之画确定区域内不重合的随机圆

    MATLAB之画确定区域内不重合的随机圆 程序要求:在确定区域内,画互不重合的圆. 知识点: (1)A=p'; 转置运算 (2)ones(a,b)产生a行b列全1数组 (3)rand(a,b)产生a行 ...

  2. 【百度地图API】如何利用自己的数据制作社交地图?只显示可视区域内的标注

    原文:[百度地图API]如何利用自己的数据制作社交地图?只显示可视区域内的标注 摘要:如果你自己的数据已经超过1万个,如何进行合理的显示?除了聚合marker外,还有一个办法.那就是,只显示可视区域内 ...

  3. 判断一个点是否在某个区域内。百度,高德,腾讯都能用。(php版)

    <?php // *** 配置文件(表示区域的三维数组)其内的点,必须按顺时针方向依次给出! $area = array( // 天通苑店 0 => array( array('x'=&g ...

  4. 【GIS新探索】算法实现在不规则区域内均匀分布点

    1 概要 在不规则区域内均匀分布点,这个需求初看可能不好理解.如果设想一下需求场景就比较简单了. 场景1:在某个地区范围内,例如A市区有100W人口,需要将这100W人口在地图上面相对均匀的标识出来. ...

  5. 推断一个点是否在某个区域内。百度,高德,腾讯都能用。(php版)

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...

  6. 【原】ios的hitTest方法以及不规则区域内触摸事件处理方法

    概述 在正常的使用场景中,我们处理了比较多的矩形区域内触摸事件,比如UIButton.UIControl.一般来说,这些控件的图形以及触摸区域都是矩形或者圆角矩形的.但是在一些特殊应用场景中我们有时不 ...

  7. java/c# 判断点是否在多边形区域内

    java/c# 判断点是否在多边形区域内 年06月29日 ⁄ 综合 ⁄ 共 1547字 ⁄ 字号 小 中 大 ⁄ 评论关闭 最近帮别人解决了一个问题,如何判断一个坐标点,是否在多边形区域内(二维). ...

  8. 验证坐标在某片坐标区域内 php 代码

    之前碰到的这样一个需求,要将公司的服务范围在地图中显示出来,并将用户每天的访问坐标进行统计看有多少用户是在所能达到的服务范围半径内. 以下是PHP代码的实现 (仅验证坐标在某片坐标区域内) <? ...

  9. php验证地图坐标在某片坐标区域内

    mysql空间查询并不太适合地图坐标,如果使用:http://www.cnblogs.com/tyjsjl/p/8760002.html的方式进行地图点坐标的查询就不好用了,于是直接使用php来进行地 ...

随机推荐

  1. JS中的Number数据类型详解

    Number数据类型 Number类型使用IEEE754格式来表示整数和浮点值,这也是0.2 + 0.3不等于0.5的原因, 最基本的数值类型字面量格式是十进制整数 var a = 10; 1. 浮点 ...

  2. 关于正则表达式RegExp

    常用元字符串 元字符 说明 \d 匹配   数字 \D 匹配   非数字 \w 匹配   数字,字母,下划线 \W 匹配   任意不是字母,数字,下划线 \s 匹配   空白符 \S 匹配   任意不 ...

  3. elasticsearch 深入 —— Post Filter后置过滤器

    过滤查询以及聚合 A natural extension to aggregation scoping is filtering. Because the aggregation operates i ...

  4. 前端学习(三十九)移动端app(笔记)

    移动端App    开发App的三种方式    Native App         原生        底层语言        java         Android        oc      ...

  5. mysql sqlyog提示2058错误或者用Navicat连接本机Docker的Mysql 和一些问题的解决方案

    1. 下载Mysql的Docker镜像: [plain] view plain copy$ docker search mysql (搜索mysql镜像)  $ docker pull mysql ( ...

  6. chrome插件研发手册

    chrome插件研发手册 一:需求前景 对于研发的小伙伴来说,总会遇到这样的需求,想要通过代码操作已有网站的行为动作,如:自动填充表格内容(表单内容太多,想一键将表单内容填充):自动登录网站(网站登录 ...

  7. [BZOJ5428][九省联考2018]双木棋

    去年觉得高不可攀的题啊... 貌似就很沙茶了QAQ 直接状压每一行是多少然后合法状态是LIS状态数极少所以随便dp一下就好了啊... 注意初值啥的得赋对才行QAQ 我菜死了 //Love and Fr ...

  8. Ubuntu下使用天河注意事项

    把下载的.cgi登陆文件用文本编辑器打开,修改端口 用管理员权限打开.cgi才能绑定端口 $ gksu nautilus # browse files as root $ gksu gedit /et ...

  9. iOS 常用随机数

    比如:获取一个随机整数范围在:[0,100)包括0,不包括100 ; 参考:https://www.jianshu.com/p/106475cbd3da

  10. 10.18.2 linux文件压缩与打包

    tar压缩工具 tar 本身为一个打包工具,可以把目录打包成一个文件,它的好处是它把所有文件整合成一个大文件整体,方便拷贝或者移动. 语法:tar [-zjxcvfpP] filename tar 命 ...