0
私は、その中心が位置(x、y)にあり、その長軸がx軸に対して角度φである長方形を表示したいとします。どうやってやるの?散布図を使用して指定された方向の矩形を表示する
Iは
scatter(x,y)
によって、位置(x、y)の円点を示すことができるしかし、私は矩形については考えています。
私は、その中心が位置(x、y)にあり、その長軸がx軸に対して角度φである長方形を表示したいとします。どうやってやるの?散布図を使用して指定された方向の矩形を表示する
Iは
scatter(x,y)
によって、位置(x、y)の円点を示すことができるしかし、私は矩形については考えています。
fill
を使用して、x
とy
の座標から2次元ポリゴンを描画します。
c = [0, 0]; % Position of centre
h = 5; w = 8; % height and width of rectangle
a = deg2rad(30); % angle of rotation in radians (using deg2rad so can be set in degrees)
% Get corners of rectangle
corners = [c(1) + w/2, c(2) + h/2; c(1) + w/2, c(2) - h/2; c(1) - w/2, c(2) - h/2; c(1) - w/2, c(2) + h/2];
% rotate corner points
corners = [(corners(:,1)-c(1))*cos(a) - (corners(:,2)-c(2))*sin(a) + c(1), (corners(:,1)-c(1))*sin(a) + (corners(:,2)-c(2))*cos(a) + c(2)];
% Use 'fill' or 'patch' to plot
fill(corners(:,1), corners(:,2), 'r')
あなたは
function [corners(:,1), corners(:,2)] = getRectangle(c, h, w, a)
% This function returns the corner points for a rectangle, specified
% by its centre point c = [x,y], height h, width w and angle in degrees from horizontal a
a = deg2rad(a);
corners = [c(1) + w/2, c(2) + h/2; c(1) + w/2, c(2) - h/2; c(1) - w/2, c(2) - h/2; c(1) - w/2, c(2) + h/2];
corners = [(corners(:,1)-c(1))*cos(a) - (corners(:,2)-c(2))*sin(a) + c(1), (corners(:,1)-c(1))*sin(a) + (corners(:,2)-c(2))*cos(a) + c(2)];
end
使用、それを再利用したい場合、これは機能にパッケージ化することができます
[rectX, rectY] = getRectangle([0,0], 5, 8, 30);
fill(rectX, rectY, 'r');
を、私は、データのどのように多くの散乱を使用しないようにしたいですプロット! –
散布機能を使用するときは、円の代わりに長方形の点を使用するだけですか?それはx軸に対する矩形の角度と何が関係していますか? – Wolfie
scatter関数を使うときは円の代わりに四角形の点が必要なのでしょうか?それとも、散布(x、y、 'd') 'や散布(x、y、s)はい、正確に。それはx軸に対する矩形の角度と何が関係していますか?それは私が尋ねた質問です。 –