Matlab:任意的三维Cubic空间中生成大小不一样的小球,并画出截面

生成小球和大球的代码块

clear all
clc
close all
% entorid3D = rand(10,3, 0.1,0.9);

% for c11 = 0.05:0.3:0.95
%     for c12 = 0.05:0.3:0.95
%         for c13 = 0.05:0.3:0.95
%             [x1,y1,z1]  = ellipsoid(c11, c12, c13, 0.05, 0.05, 0.05,100);
%             surf(x1,y1,z1,'LineStyle','none','FaceColor', 'r') %画出来球
%             axis equal %保证各个维度的长短一致
%             hold on
%         end
%     end
% end
% hold on

% Big spere
[xb,yb,zb]  = ellipsoid(2.0, 2.0, 2.0, 0.49, 0.49, 0.49,100);
surf(xb,yb,zb,'LineStyle','none','FaceColor', 'c') %画出来球
axis equal %保证各个维度的长短一致
hold on

% Small speres
for c21 = 1.5:1.0:2.9
    for c22 = 1.5:1.0:2.9
        c23 = 2.0;
        [x2,y2,z2]  = ellipsoid(c21, c22, c23, 0.25, 0.25, 0.25,100);
        surf(x2,y2,z2,'LineStyle','none','FaceColor', 'b') %画出来球
        axis equal %保证各个维度的长短一致
    end
end
hold on

% Small speres
for c33 = 1.5:1.0:2.9
    for c32 = 1.5:1.0:2.9
        c31 = 2.0;
        [x3,y3,z3]  = ellipsoid(c31, c32, c33, 0.25, 0.25, 0.25,100);
        surf(x3,y3,z3,'LineStyle','none','FaceColor', 'r') %画出来球
        axis equal %保证各个维度的长短一致
    end
end
hold on
xlabel('$x_1$', 'Fontsize', 18, 'Interpreter', 'latex')
ylabel('$x_2$', 'Fontsize', 18, 'Interpreter', 'latex')
zlabel('$x_3$', 'Fontsize', 18, 'Interpreter', 'latex')
set(gca, 'XMinortick', 'off', 'YMinorTick', 'off', 'Fontsize', 14);
set(gcf, 'Renderer', 'zbuffer');
hold on

axis([1 3 1 3 1 3]);
camlight('headlight')

在这里插入图片描述
下面的图为画分别平行于 xoy 和 yoz 的截面

clear all
close all
clc

num2xy_point = 30000;
xy_point = rand(num2xy_point, 2);
xy_point(:,1) = 1+xy_point(:,1)*2;
xy_point(:, 2) = 1+xy_point(:, 2)*2;
count_num2xy=1;
for ip2xy = 1:num2xy_point
    x1_ip = xy_point(ip2xy,1);
    y1_ip = xy_point(ip2xy,2);
    
    % 抠除中心大球     
    cx1_b = x1_ip-2.0;
    cy1_b = y1_ip-2.0;
    rcb = sqrt(cx1_b^2+cy1_b^2);
    
    % 抠除小球 1
    cx1_1 = x1_ip-1.5;
    cy1_1 = y1_ip-1.5;
    rc1 = sqrt(cx1_1^2+cy1_1^2);
    
    % 抠除小球 2
    cx1_2 = x1_ip-2.5;
    cy1_2 = y1_ip-2.5;
    rc2 = sqrt(cx1_2^2+cy1_2^2);
    
    % 抠除小球 3
    cx1_3 = x1_ip-1.5;
    cy1_3 = y1_ip-2.5;
    rc3 = sqrt(cx1_3^2+cy1_3^2);
    
    % 抠除小球 4
    cx1_4 = x1_ip-2.5;
    cy1_4 = y1_ip-1.5;
    rc4 = sqrt(cx1_4^2+cy1_4^2);
    
    if rcb>0.49 && rc1>0.25 && rc2>0.25 && rc3>0.25 && rc4>0.25
        irregularD1(count_num2xy, 1)=x1_ip;
        irregularD1(count_num2xy, 2)=y1_ip;
        count_num2xy=count_num2xy+1;
    end
end
size2xy_point = size(irregularD1);
irregularD1Z = ones(max(size2xy_point),1)*2.0;
irregularD1X = irregularD1(:, 1);
irregularD1Y = irregularD1(:, 2);

irregularD1XYZ = [irregularD1X,irregularD1Y,irregularD1Z];

num2yz_point = 30000;
yz_point = rand(num2yz_point, 2);
yz_point(:,1) = 1 + yz_point(:,1)*2;
yz_point(:, 2) = 1 + yz_point(:, 2)*2;
count_num2yz=1;
for ip2xy = 1:num2yz_point
    y2_ip = yz_point(ip2xy,1);
    z2_ip = yz_point(ip2xy,2);
    
    % 抠除中心大球     
    cy2_b = y2_ip-2.0;
    cz2_b = z2_ip-2.0;
    rcb2 = sqrt(cy2_b^2+cz2_b^2);
    
    % 抠除小球 1
    cy1_1 = y2_ip-1.5;
    cz1_1 = z2_ip-1.5;
    rc21 = sqrt(cy1_1^2+cz1_1^2);
    
    % 抠除小球 2
    cy2_2 = y2_ip-2.5;
    cz2_2 = z2_ip-2.5;
    rc22 = sqrt(cy2_2^2+cz2_2^2);
    
    % 抠除小球 3
    cy2_3 = y2_ip-1.5;
    cz2_3 = z2_ip-2.5;
    rc23 = sqrt(cy2_3^2+cz2_3^2);
    
    % 抠除小球 4
    cy2_4 = y2_ip-2.5;
    cz2_4 = z2_ip-1.5;
    rc24 = sqrt(cy2_4^2+cz2_4^2);
    
    if rcb2>0.49 && rc21>0.25 && rc22>0.25 && rc23>0.25 && rc24>0.25
        irregularD2(count_num2yz, 1)=y2_ip;
        irregularD2(count_num2yz, 2)=z2_ip;
        count_num2yz=count_num2yz+1;
    end
end
size2yz_point = size(irregularD2);
irregularD2X = ones(max(size2yz_point),1)*2.0;
irregularD2Y = irregularD2(:, 1);
irregularD2Z = irregularD2(:, 2);

irregularD2XYZ = [irregularD2X,irregularD2Y,irregularD2Z];

figure('name', 'fig')
scatter3(irregularD1X,irregularD1Y,irregularD1Z,'r.')
hold on

scatter3(irregularD2X,irregularD2Y,irregularD2Z,'c.')
hold on
xlabel('$x_1$', 'Fontsize', 18, 'Interpreter', 'latex')
ylabel('$x_2$', 'Fontsize', 18, 'Interpreter', 'latex')
zlabel('$x_3$', 'Fontsize', 18, 'Interpreter', 'latex')
set(gca, 'XMinortick', 'off', 'YMinorTick', 'off', 'Fontsize', 14);
set(gcf, 'Renderer', 'zbuffer');
hold on

axis([1 3 1 3 1 3]);

XYZ = [irregularD1XYZ;irregularD2XYZ];

u = 10*exp(-0.25*(XYZ(:,1)+XYZ(:,2)+XYZ(:,3)));

save('TwoSlice2TestXYZ.mat','XYZ')

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/521263.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode 13. 罗马数字转整数

代码&#xff1a; class Solution(object):def romanToInt(self, s):""":type s: str:rtype: int"""dict1 {I:1,V:5,X:10,L:50,C:100,D:500,M:1000}nums 0t len(s)i 0while i<t :if s[i]I:if i1 t:numsdict1.get(s[i])i1else:if s[i1] V…

深入浅出 -- 系统架构之负载均衡Nginx资源压缩

一、Nginx资源压缩 建立在动静分离的基础之上&#xff0c;如果一个静态资源的Size越小&#xff0c;那么自然传输速度会更快&#xff0c;同时也会更节省带宽&#xff0c;因此我们在部署项目时&#xff0c;也可以通过Nginx对于静态资源实现压缩传输&#xff0c;一方面可以节省带宽…

SystemC入门之测试平台编写完整示例:带同步输出的多路选择器

内容&#xff1a;SystemC入门书中的简单测试平台编写示例。 模块文件编写 带锁存输出的4选1多路器模型。输出在信号clock的正跳变沿时刻被锁存。 sync_mux41.h文件 #include <systemc.h>SC_MODULE(sync_mux41) {sc_in<bool> clock, reset;sc_in<sc_uint<…

基于沙漏 Tokenizer 的高效三维人体姿态估计框架HoT

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读&#xff1a;基于沙漏 Tokenizer 的高效三维人体姿态估计框架HoT1、研究背景2、提出方法3、模块详细3.1、什么是HoT3.2、HoT 框架3.3、Token 剪…

IDEA/PyCharm/GoLand同时打开2个分支

背景 想对比2个分支的代码&#xff0c;或者在A分支开发时&#xff0c;需要看B分支&#xff0c;切来切去太麻烦&#xff0c;而且新写的代码还没法直接切到B分支。 操作方法 假如有A、B 2个分支。 通过git worktree为B分支新建1个worktree&#xff0c;然后通过打开新项目的方式…

Mac资源库的东西可以删除吗?mac资源库在哪里打开 cleanmymacx是什么 cleanmymac免费下载

在使用Mac电脑的过程中&#xff0c;用户可能会遇到存储空间不足的问题。一种解决方法是清理不必要的文件&#xff0c;其中资源库&#xff08;Library&#xff09;文件夹是一个常被提及但又让人迷惑的目标。Mac资源库的东西可以删除吗&#xff1f;本文旨在解释Mac资源库的作用、…

JDK安全剖析之安全处理入门

0.前言 Java 安全包括大量 API、工具以及常用安全算法、机制和协议的实现。Java 安全 API 涵盖了广泛的领域&#xff0c;包括加密、公钥基础设施、安全通信、身份验证和访问控制。Java 安全技术为开发人员提供了编写应用程序的全面安全框架&#xff0c;还为用户或管理员提供了…

DeepSort行人车辆识别系统(实现目标检测+跟踪+统计)

文章目录 1、前言2、源项目实现功能3、运行环境4、如何运行5、运行结果6、遇到问题7、使用框架8、目标检测系列文章 1、前言 1、本文基于YOLOv5DeepSort的行人车辆的检测&#xff0c;跟踪和计数。 2、该项目是基于github的黄老师傅&#xff0c;黄老师傅的项目输入视频后&#x…

Django之五种中间件定义类型—process_request、process_view、process_response.......

目录 1. 前言 2. 基础中间件 3. 如何自定义中间件 4. 五种自定义中间件类型 4.1 process_request 4.2 process_view 4.3 process_response 4.4 process_exception 4.5 process_template_response 5. 最后 1. 前言 哈喽&#xff0c;大家好&#xff0c;我是小K,今天咋们…

计算机网络 实验指导 实验12

路由信息协议&#xff08;RIP&#xff09;实验 1.实验拓扑图 名称接口IP地址网关Switch AF0/1192.168.1.1/24F0/2172.1.1.1/24Switch BF0/1192.168.1.2/24F0/2172.2.2.1/24PC1172.1.1.2/24172.1.1.1PC2172.1.1.3/24172.1.1.1PC3172.2.2.2/24172.2.2.1PC4172.2.2.3/24172.2.2.1…

FPGA笔试面试题目记录

1 logic utilization 题目&#xff1a;Rank the following operations from lowest utilization to highest. Assume that all variables are 32-bit integers,that the operations are implemented using LUTs ony and that the synthesiser will produce an optimal digital…

【微信小程序】【小程序样式加载不出来】

微信小程序配置sass 第一步&#xff1a;找配置文件 在项目中找到 project.config.json文件&#xff0c;在setting属性中添加 useCompilerPlugins属性&#xff0c;值为sass即可&#xff0c;若是 less,将数组里面的值改为less即可 "useCompilerPlugins": ["sas…

Flutter 解决NestedScrollView与TabBar双列表滚动位置同步问题

文章目录 前言一、需要实现的效果如下二、flutter实现代码如下&#xff1a;总结 前言 最近写flutter项目&#xff0c;遇到NestedScrollView与TabBar双列表滚动位置同步问题&#xff0c;下面是解决方案&#xff0c;希望帮助到大家。 一、需要实现的效果如下 1、UI图&#xff1…

Quantinuum与微软携手突破:开创容错量子计算新纪元

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

高精度端到端在线校准环视相机和LIDAR(精度0.2度内!无需训练数据)

高精度端到端在线校准环视相机和LIDAR&#xff08;精度0.2度内&#xff01;无需训练数据&#xff09; 附赠自动驾驶学习资料和量产经验&#xff1a;链接 写在前面 在自动驾驶车辆的使用寿命内&#xff0c;传感器外参校准会因振动、温度和碰撞等环境因素而发生变化。即使是看似…

闪站侠洗护管理系统,洗衣洗鞋小程序软件定制,干洗连锁店软件系统搭建;

闪站侠洗护管理系统&#xff0c;洗衣洗鞋小程序软件定制&#xff0c;干洗连锁店软件系统搭建&#xff1b; 为了让每一个洗衣洗鞋工厂与门店的连接更加高效便捷&#xff0c;送洗流程更加简单轻松&#xff0c;拽牛科技倾心打造洗衣洗鞋管理软件。我们的目标是通过高效和优质的服务…

Rust vs C++:2024,谁更懂错误处理?

讲动人的故事,写懂人的代码 「席双嘉,听说你的C++项目又因为忘了检查返回值导致内存泄漏,又加班了?」 周五中午,在国内某科技巨头熙熙攘攘的员工餐厅,贾克强半开玩笑地戳了戳坐在隔壁的席双嘉,眼神中满是戏谑。 贾克强,一个热衷于Rust的程序员,总是乐于挑战和探索新…

域名应该如何实名?域名应该如何备案?域名如何解析到服务器

大家好欢迎来到易极赞&#xff0c;今天我们来跟大家聊一下“域名应该如何实名以及备案”这个话题。 域名实名认证是验证域名所有者身份的过程&#xff0c;以确保域名的合法性&#xff0c;通常需要登录到域名服务商后台&#xff0c;进行域名的注册&#xff0c;注册后创建域名模…

【PyQt5篇】多线程

文章目录 &#x1f354;使用QtDesigner进行设计&#x1f6f8;实现多线程&#x1f339;效果&#x1f50e;原因 &#x1f354;使用QtDesigner进行设计 对应的代码btn.ui <?xml version"1.0" encoding"UTF-8"?> <ui version"4.0">&l…

虚拟机VMware启动虚拟机刚启动有网之后没网

虚拟机VMware启动虚拟机刚启动有网之后没网 害&#xff0c;感觉这种调试的事情是真的浪费时间 如题&#xff0c;对于这种情况&#xff0c;一句话&#xff0c;就是你本地的DHCP虚拟机服务以及NAT网络服务没启动 本机windowR,输入services.msc 进入服务 然后 喏&#xff0c;…