我有1024 X 256极坐标数据(行-半径,列角度),我需要将其绘制为图像。有一个我从文件交换中得到的m文件,它可以做这个。然而,对于大图像来说,它真的很慢。我相信有一种快速的方法可以使用我正在苦苦挣扎的surf函数来完成这项工作。(参见下面的代码)
data = data; % load any polar data
depth = 4.5; %imaging depth in mm
offset = 0.5;
theta = [(0:2*pi/size(data,2):2*pi-1/size(data,2))]*180/pi;
rho = [0:(depth-offset)/si
我正在努力编写我的代码,它应该在极坐标中创建向量场的流线。我已经将(r,φ)分量转换为标准笛卡尔坐标(x,y)。以(r,phi)表示的组分均匀分布,即r= 0:const:10,phi = 0:const:2*pi。现在我尝试使用streamslice(x,y,wx,wy)计算这个向量场的流线,但我得到了一个错误:
streamslice(x,y,Gradx,Grady)
Error using griddedInterpolant
Interpolation requires at least two sample points in each
dimension.
Error in
我有一个颜色圆圈,用户可以从中选择颜色。用这种方法计算颜色。
public int getColorForPoint(int x, int y, float[] hsv) {
x -= fullCircleRadius;
y -= fullCircleRadius;
double centerDist = Math.sqrt(x * x + y * y);
hsv[0] = (float) (Math.atan2(y, x) / Math.PI * 180f) + 180;
hsv[1] = Math.max(0
我想画一个正在绘制的极地花卉。我希望结果会像这样的情节:
但是,当前的结果如下:
我一直在把坐标重新排列成多维结构x1和y1,所以它不只是作为一个简单的余弦波来填充。帮助是非常感谢的。
clear;close all;
x = 0:0.01:pi*2;
r = cos(2*x).*sin(2*x);
figure
polar(x,r);
input('Press ENTER to start.');
hold on;
for x0 = x
r0 = cos(2*x0).*sin(2*x0);
polar(x0,r0,'o');
x1 =
我试图将图像的像素从x-y坐标转换为极坐标,我有问题,因为我想自己编写函数。下面是我迄今为止所做的代码:
function [ newImage ] = PolarCartRot
% read and show the image
image= imread('1.jpg');
%%imshow(image);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%change to polar coordinate
[x y z]= size(image);
r = sqrt(x*x+
我正在尝试制作一个反弹的球的动画,但在创建一个基本的多色球时遇到了困难,然后我可以在每一帧中作为一个整体进行旋转。我在球的圆周上有512个点,分成8个扇区,每个扇区都有不同的颜色。到目前为止,我有两个8x64的矩阵,表示沿着球的圆周的点的x和y坐标,每一行都是它自己的扇区。
我想知道如何沿着圆填充这些“范围”,使它看起来像一个沙滩球,创建一个函数,以两个x和y坐标矩阵作为输入。您的帮助将不胜感激!
基本骨架功能:
% Expects 8xN x and y point matrices
function draw_ball(x,y)
% Draw the 8 sectors filling t
我需要把黑白图像转换成极坐标。原始图像保存在矩阵中。现在,我正在迭代原始图像的每个像素,并计算每个像素的极坐标转换,如下所示:
originX = 0;
originY = 0;
for x = 1:columns
for y = 1:rows
r = sqrt((x-originX)^2 + (y-originY)^2);
a = atand((y-originY)/(x-originX));
polarTrans(r, a) = origImage(x,y);
end
end
问题是,为像素计算的新位置不是正整数值,所