0

我在 math.stackexchange.com 上发布了这个问题,但我不完全确定这是否是发布这个问题的正确社区。我选择了数学网站,因为我能够以易于阅读的方式表示我想绘制的数学方程。

问题的链接在这里:https ://math.stackexchange.com/questions/220395/matlab-how-to-plot-circular-plot-with-mixed-euclidean-and-polar-coordinate-para

我希望我不会因为重复发布或在错误的位置发布而违反任何规则。请随时在这里纠正我。

谢谢大家

4

1 回答 1

2

为简单起见,我将仅针对第一个等式给出答案,我相信您会理解如何进一步应用它。这是我在保持 L1 和 L2 不变的同时生成表示 x、y、theta 方程的 3d 矩阵的方法:

N=100; % grid points
rangex=linspace(-2,2,N);
rangey=linspace(-2,2,N);
ranget=linspace(-pi,pi,N);

[x,y,theta] = meshgrid(rangex,rangey,ranget);

L1 = 1; 
L2 =-1; 

A = x.^2+y.^2-2*L1*L2*cos(theta);

您可以使用多种工具来可视化 A=L1^2+L2^2,这是一种方法:

p=patch(isosurface(x,y,theta,A,L1^2+L2^2))
set(p,'FaceColor','red','EdgeColor','none');
daspect([1,1,1])
view(3); axis tight
camlight 
lighting gouraud

在此处输入图像描述

于 2012-10-24T23:29:32.957 回答