#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. python序列的深拷贝和浅拷贝

    python中的不可变类型 列举:数值,字符串.元组.字节串 数值及字符串“可变”'的假象 num = 123 mystr = 'abc' print(id(num), num) print(id(m ...

  2. 一、WebApi模型验证实践项目使用

    一.启语 前面我们说到,模型验证的原理(包含1.项目创建,2.模型创建,3.走通测试模型验证,4.在过滤器中处理返回json格式(非控制器内))-完全是新手理解使用的,新番理解 通常情况下,对于那些经 ...

  3. HDU 5634 线段树

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5634 题意:给定一个长度为n的序列,有m次操作.操作有3种: 1 l,r :区间[l,r]的值变成ph ...

  4. linux ---maven的安装和配置

    linux下的maven的安装和配置:本人使用的是apache-maven-3.3.9-bin.tar.gz------安装maven的前提是JDK安装成功:java -version 测试一下--J ...

  5. 《x的奇幻之旅》:有趣的数学科普

    本书是相对比较少见的数学方面的科普书.从最简单的阿拉伯数字.加减法,一直到概率统计.微积分.群论.拓扑.微分几何,每个主题都用几千字做一些深入浅出的介绍.写的相当的有趣. 在书中又一次看到这个有趣的事 ...

  6. 同步与异步,阻塞与非阻塞 bio,nio,aio

    BIO.NIO和AIO的区别(简明版) 同步异步,阻塞非阻塞: https://www.zhihu.com/question/19732473   转载请注明原文地址:http://www.cnblo ...

  7. procixx 时钟的坑

    error 1.procixx设置800M,uboot中是720M 了解到整个过程是,当procixx配置后,通过FSBL中的ps_init.c反应出来 // ARM_PLL_FDIV = 48    ...

  8. 第三节 基本数据写入 --------增加&查询

    启动mongodb服务 net start mongodb 链接mongodb  进入bin目录 mongo 127.0.0.1:12345 启动连接 show dbs   显示所有的数据库 use ...

  9. Redis服务器中有75%受到恶意软件感染

    尽管由于配置错误的服务器和应用程序而导致新的网络攻击不断出现,但人们仍然忽略安全警告. 近两个月前,中国知名黑客组织东方联盟研究人员警告说,一项针对开放Redis服务器的大规模恶意软件活动现在已经发展 ...

  10. 太可怕了!黑客是如何攻击劫持安卓用户的DNS?

    最近发现的针对Android设备的广泛路由器的DNS劫持恶意软件现在已升级为针对iOS设备以及桌面用户的功能. 被称为RoamingMantis的恶意软件最初发现在上个月劫持了互联网路由器,以散布旨在 ...