極座標プロットへの画像の挿入について
17 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
fumikazu sase
el 2 de Nov. de 2021
Comentada: fumikazu sase
el 5 de Nov. de 2021
極座標プロットしたグラフ内に、画像を挿入することは可能でしょうか。具体的にやりたいことは、レーダーチャートの中心に、薄く画像を挿入したいです。直行座標系ならば、image関数で画像を挿入できるし、alpha値も変えられますが、極座標系にイメージを挿入する関数が見つけられません。よろしくお願いいたします。
0 comentarios
Respuesta aceptada
Atsushi Ueno
el 3 de Nov. de 2021
Editada: Atsushi Ueno
el 3 de Nov. de 2021
上記の逆バージョン(極座標⇒直交座標ではなく直交座標⇒極座標)が質問の回答になり得ると考えました。
I = imread('peppers.png'); % 適当な画像(ピーマン・唐辛子・にんにく)
s = round(size(I) * 0.5); % 画像の中央を極座標の中心にする為、画像サイズ/2を得る
[x, y] = meshgrid(-s(2):s(2)-1, -s(1):s(1)-1); % 画像の座標データ
[t, r] = cart2pol(x, -y); % 画像の座標データを直交座標⇒極座標に変換
c = reshape(double(I)./256, [], 3); % 色をuint8(0-255)⇒double(0-1)、画像サイズ⇒RGB3成分に変更
polarscatter(t(:), r(:), 1, c, 'filled', ... % 極座標に画像を描画
'MarkerEdgeColor','none', ... % マーカーのエッジは無色
'MarkerFaceColor','flat', ... % マーカーの面の色はcData(4番目の引数cで設定した値)
'MarkerFaceAlpha',0.1); % マーカーの面の透明度を設定する
hold on;
% 画像の後に適当なグラフを描画
t = 0:0.01:2*pi;
r = 600.*sin(2*t).*cos(2*t);
polarplot(t, r, 'color', 'r', 'LineWidth', 2);
polarscatter関数で描画しました。透明度を設定する為、マーカの輪郭ではなく面で描画しています。
上記の通り、画像に筋が入ってしまう難点があります。なんでだろ
マーカのサイズを大きくしてごまかせますが、そうすると透明度の設定が上手く出来なくなります。
Más respuestas (0)
Ver también
Categorías
Más información sobre 極座標プロット en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!