MarkerSizeを座標の値と一致させたい
Show older comments
【背景】
現在、円同士をぶつけて軌道を変える反射のアニメーションを作成中です。
演算自体はうまくいったのですが、グラフィックスがうまくいきません。
マーカーサイズの設定が問題のようです。以下に例を示します。
【例題】
半径 20 のマーカーを作成したいのですが、うまくいきません。
r = 40/2;
Xl = 100;
Yl = 100;
fig = figure;
ph = plot(0,0,'MarkerSize',2*r,'Marker','o','MarkerFaceColor','k');
grid on
xlim([-1 1].*Xl)
ylim([-1 1].*Yl)
pbaspect([1 1 1]);
上記のように半径は20になっていません。
figureのプロパティで 'Units' があるのでそこを設定するのかなと思っていますが、
いまいちピンとこないため悩んでいます。
【補足】なぜPlotか
コールバックでアニメーションを作っているからです。
これは後にマウス等の操作と連携するために行っています。
Plotは入れ子関数内で ph.XData / ph.YData の更新だけすればいいので楽だと思い選びました。
現状はアスペクト比を合わせて、ph = axes('Unit', 'pixel')とすることで m ファイル上はうまくいってるように見えます。
ほかの方法があれば、教えていただけると幸いです。
Accepted Answer
More Answers (0)
Categories
Find more on グラフィックス パフォーマンス in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
