matlab - 在matlab中将实心球体绘制为点
问题描述
我可以绘制 cicle 点并放置经过它们的箭头:
plot(1,1,'o','MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',10,'LineWidth',1.5); hold on;
plot(2,1,'o','MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',10,'LineWidth',1.5); hold on;
vec1=zeros(1,3); vec2=zeros(1,3); col1=zeros(1,3); col2=zeros(1,3);
vec1=[0.98996547 0.00000000 0.14130945];
vec2=[0.00000000 0.70710678 -0.70710678];
col1= [abs(vec1(1,1)) abs(vec1(1,2)) abs(vec1(1,3))];
col2= [abs(vec2(1,1)) abs(vec2(1,2)) abs(vec2(1,3))];
ac=0.1;
p1_sh = [1 1 0] - ac*vec1;
p2_sh= [2 1 0] - ac*vec2;
scalef=0.4;
quiver3(p1_sh(1),p1_sh(2),p1_sh(3),vec1(1,1)*scalef,vec1(1,2)*scalef,vec1(1,3)*scalef,'AutoScale','off','MaxHeadSize',5,'LineWidth',5,'Color',col1); hold on;
quiver3(p2_sh(1),p2_sh(2),p2_sh(3),vec2(1,1)*scalef,vec2(1,2)*scalef,vec2(1,3)*scalef,'AutoScale','off','MaxHeadSize',5,'LineWidth',5,'Color',col2); hold on;
view(20,20);
hold off;
输出是:
问题是这些点是圆而不是球体。LineSpec
没有球体选项。我怎样才能把点变成球体?
解决方案
使用时
plot(1,1,'o','MarkerEdgeColor','k',...
'MarkerFaceColor','k','MarkerSize',10,'LineWidth',1.5);
您正在创建一个 2D 标记,即使您使用了 plot3(...) 也没有深度的元素。
为了创建一个“实心”球体,您可以使用命令“Sphere”
numVertices = 32;
sphereRadius = 15;
[sph.x, sph.y, sph.z] = sphere(numVertices);
sph.x = sph.x*sphereRadius;
sph.y = sph.y*sphereRadius;
sph.z = sph.z*sphereRadius;
surf(sph.x,sph.y,sph.z);
还要记住,这个球体将是空心的,由符合其表面的平面组成。您不能创建“实体”对象。
推荐阅读
- arrays - 最坏情况下的大 omega(n) 是什么意思?
- node.js - npx create-express-api 不断收到未知错误
- kubernetes - Kubernetes pvc 请求和物理存储
- android - Apps 脚本无法通过 Flutter App APK 访问
- c# - 如何使用服务器端 ASP.NET Core 3.1 MVC 访问浏览器的本地存储
- r - 预处理数据后如何在 tidymodels R 中进行预测
- java - 替换正则表达式组 JAVA
- unity3d - 通过 Unity 中的代码使用 Anchor Presets 设置 GameObject 的位置
- react-native - 如何在本机反应中获得 Orientation.lock 状态
- html - 不安全的内容