我是MATLAB新手,有一个根本性问题,就是我在查找在线资源时遇到问题。我有一个圆的方程:C = center +(radius * cos(theta))+(radius * sin(theta))。我想把这个圆圈图形化为我之前绘制的其他东西......所有这些都是3D。我已经尝试过使用theta = linspace(0,2 * pi),但是在构建矩阵大小不同意的圆的方程时!如果你能提供任何好的帮助!在MATLAB中绘制参数化的3D圆圈
3
A
回答
0
我不知道你正在尝试做的,但考虑到这个例子:
theta = linspace(0,2*pi,100);
C = [0;0];
r = 1;
p = bsxfun(@plus, r.*[cos(theta);sin(theta)], C);
plot(p(1,:), p(2,:), '.-')
axis equal
1
这里是绘制一个圆与给定的半径和中心(假设圆的一个例子位于平面z = 0
):
radius = 2; %# Define your radius
center = [1 2]; %# Define your circle center [Cx Cy]
theta = linspace(0,2*pi); %# Create an array of theta values
X = center(1)+radius.*cos(theta); %# Create the X values for the circle
Y = center(2)+radius.*sin(theta); %# Create the Y values for the circle
Z = zeros(size(X)); %# Create the Z values for the circle (needed
%# for 3D plotting)
hold on; %# Add to the current existing plot
plot3(X,Y,Z); %# Plot your circle in 3D
这里有一些在线资源的链接,应该是一个很好的起点学习MATLAB绘图的基本知识:
- Using Basic Plotting Functions in MATLAB
- PLOT函数文档
- PLOT3函数文档
- HOLD函数文档
1
由于圆本质上是一个二维的实体,您会需要生成代表它的点到3D空间中嵌入的已知2D平面。然后,您可以随意旋转,缩放和翻译。
一个简单的演示代码,希望清楚:
n= 78; theta= linspace(0, 2* pi, n); c= [1 2 3]'; r= sqrt(2);
points= r*[cos(theta); sin(theta); zeros(1, n)]+ repmat(c, 1, n);
plot3(points(1,:), points(2,:), points(3,:), 's-')
axis equal, hold on
R= rref([rand(3) eye(3)]); R= R(:, 4: 6);
points= R* points;
plot3(points(1,:), points(2,:), points(3,:), 'ro')
相关问题
- 1. 在MATLAB中绘制圆圈
- 2. 如何在matlab中绘制一个3d圆圈填充颜色
- 3. 在matlab中绘制3D截断圆锥
- 4. 在C++中绘制圆圈
- 5. 在android中绘制圆圈
- 6. 绘制圆圈vhdl
- 7. 在Winform外绘制圆圈
- 8. 在Matlab中绘制3D点
- 9. 在MATLAB中绘制带有alpha值的圆圈
- 10. 在matlab中绘制圆环
- 11. 在matlab中绘制2参数函数的结果(3D图形)
- 12. 在XNA中绘制简单的圆圈
- 13. 在android中绘制圆圈的XML
- 14. 绘制圆圈的Mapkit
- 15. 如何在圆圈内绘制圆形?
- 16. 动画 - 在iOS中绘制圆圈 - 未完成圆圈动画
- 17. 用scircleg在matlab地图中绘制圆圈
- 18. 3D中的圆圈交点
- 19. 为什么在MATLAB中绘制的圆圈显示为椭圆形?
- 20. 如何在android中绘制圆圈?
- 21. 在CCRenderTexture中绘制抗锯齿圆圈
- 22. 如何在Unity3D中绘制圆圈?
- 23. 绘制圆圈并存储在UIImage中
- 24. 在画布中心绘制圆圈
- 25. 如何在gnuplot中绘制圆圈
- 26. 在桌面中间绘制圆圈
- 27. 在iPhone中帮助绘制圆圈
- 28. 在directx中绘制一个圆圈9
- 29. 在openGL中用Android绘制圆圈
- 30. 如何在cocos2dx中绘制圆圈
啊,这大大示范帮助,唯一增加的是,它不在于Z = 0。我将如何去修改代码的三维圆,使z =/= 0?与此同时,我会继续在这里和在发布的资源上进行重击。 – sue
@sue:如果圆圈位于平面'z = N'中,那么您可以按如下方式初始化'Z':'Z = N. * ones(size(X));'然而,如果圆圈倾斜这样它不会平躺在XY平面上,您的方程将比您上面的方程更复杂。 – gnovice
啊,就是这样。我试图在任何一点上绘制曲线的密切圈。无论哪种方式,该圆都可以倾斜。我相信我有这个圈子的公式是正确的......但图表一直是相当艰巨的。 – sue