極座標プロットへの画像の挿入について
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
fumikazu sase
le 2 Nov 2021
Commenté : fumikazu sase
le 5 Nov 2021
極座標プロットしたグラフ内に、画像を挿入することは可能でしょうか。具体的にやりたいことは、レーダーチャートの中心に、薄く画像を挿入したいです。直行座標系ならば、image関数で画像を挿入できるし、alpha値も変えられますが、極座標系にイメージを挿入する関数が見つけられません。よろしくお願いいたします。
0 commentaires
Réponse acceptée
Atsushi Ueno
le 3 Nov 2021
Modifié(e) : Atsushi Ueno
le 3 Nov 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関数で描画しました。透明度を設定する為、マーカの輪郭ではなく面で描画しています。
上記の通り、画像に筋が入ってしまう難点があります。なんでだろ
マーカのサイズを大きくしてごまかせますが、そうすると透明度の設定が上手く出来なくなります。
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur 極座標プロット dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!