リングとセグメントが固定されているC#(無制限)で極座標を作成します。また、0が右になるように側のディグリーを変更することは可能ですか?それはC#で可能ではない場合はそれのためのライブラリですか? C#の極座標をリングとセグメントの特定の数に設定する
答えて
MSChart
コントロールを使用すると、これはまったく難しくありません。
あなたはそのPolar ChartType
を使用して、必要なものを達成するために、2つのAxes
のさまざまなプロパティを設定することができます。ここでは
は一例です。フォームとこのようにそれを設定し、あなたにChart chart1
を追加:
Series s = chart1.Series[0]; // a reference to the default series
ChartArea ca = chart1.ChartAreas[0]; // a reference to the default chart area..
Axis ax = ca.AxisX; // and the ewo..
Axis ay = ca.AxisY; // ..axes
s.ChartType = SeriesChartType.Polar; // set the charttype of the series
s.MarkerStyle = MarkerStyle.Circle; // display data as..
s.SetCustomProperty("PolarDrawingStyle", "Marker"); //.. points, not lines
ax.Minimum = 0;
ax.Maximum = 360;
ax.Interval = 15;
ax.Crossing = 90;
最終的にデータ値を考慮する必要があるため、リングの制御が難しくなります。 0-100から行く と仮定すると、y値は、我々は10個のリングを取得するために、これらの設定を使用することができます:あなたのデータ値が異なる範囲を持っている場合は
ay.Minimum = 0;
ay.Maximum = 100;
ay.Interval = (ay.Maximum - ay.Minimum)/10;
あなたは、これらの値を適応させる必要があります!
X-Axis
のスポーク数は(Maximum - Minimum)/Interval
です。リングの数は同じですが、Y-Axis
の場合は同じです。両方を制御するには、をすべてに設定し、デフォルトのの自動に設定しないことをお勧めします。
空の中心をしたい場合べき
- がy mimimum値のバッファまたは-1または-2間隔
- を含むが
- 1個の又は2環以上を作る白い円を描きますセンターの上で、少しトリッキーな..あなたは、中心とスタイル、それにダミーのデータポイントを追加することができます別の方法として
:
int cc = s.Points.AddXY(0, ay.Minimum);
DataPoint dpc = s.Points[cc];
dpc.MarkerColor = Color.White;
dpc.MarkerSize = centerwidth; // tricky!
centerwidth
のための右のサイズを見つけるためにあなたが仕事にスケーリングしたい場合は、テストや、どちらかにしていますxxxPaint
イベントで測定します。これは、この答えの範囲を超えています..
これはリサイズにGDIで実装するのは非常に簡単です。新しいユーザーコントロールを作成し、へのOnPaintの機能をオーバーライドします。あなたのサークル(e.Graphics.DrawArc)を描画
- を
- E(データ点や線を引くラベル(e.Graphics.DrawString)
- を描きます.Graphics.DrawLine)
---------------- EDIT ------------------ 新規作成UserControl:右クリックプロジェクト - >追加 - >ユーザーコントロール
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
private void UserControl1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawEllipse(Pens.Blue, 0, 0, this.Width, this.Height);
e.Graphics.DrawString("90", this.Font, Brushes.Black, new PointF(0, 0));
e.Graphics.DrawLine(Pens.Red, 0,0, this.Width, this.Height);
}
}
}
あなたが私に例を与えるか、私はUserControlを知っていないソースを与えることができます.... –
私はそれを追加しましたが、ペイント関数を呼び出す方法は?私はフォームにusercontrolを追加しましたが、今では(フォームで)Paintイベントを呼び出すことしかできませんか? –
これをユーザーコントロールのpaintイベントに登録します。コントロールを再描画する必要があるときはいつでも、これは起動します。あなたが明示的に呼び出しを再描画する必要がある場合.Refresh() – FloatingKiwi
- 1. matplotlibの極座標プロットのサイズを設定する方法は?
- 2. QLabelの特定の座標にQPixmapを設定するには?
- 3. netlogoの特定の座標にラベルを設定する
- 4. 特定の座標のTextViewを画面上に設定する
- 5. Matlabの極座標と極座標の差
- 6. 極座標/パラメトリックモードでのGnuplotの起点の設定
- 7. QGraphicsScene/Viewを特定の座標系に設定する方法
- 8. 極座標のpcolormesh
- 9. VisioでX座標とY座標を設定する
- 10. スウィフト、極座標
- 11. Pythonの極座標への複素数
- 12. OpenCv:ビデオストリームの特定の座標にマーカーを設定する方法open cv
- 13. マウス座標をゲーム座標に設定するWebGL
- 14. Matplotlibの極座標プロット
- 15. イメージを座標間に設定する
- 16. Python - matplotlibの極座標プロットによる座標変換
- 17. Pythonは極座標
- 18. デカルト座標を極座標に変換する - Matlab
- 19. マウス座標からX座標を設定する
- 20. JPanelの左座標と幅だけを設定するには?
- 21. * all * matplotlibの極座標の角度ラベルのフォーマットをπとラジアンで設定する方法は?
- 22. fireEventでマウス座標を設定する
- 23. 極座標グラフ座標を接続する
- 24. 特定の座標のレイアウトにイメージビューを追加する
- 25. 球の色をthree.jsの座標の関数として設定する
- 26. カスタム座標を関数Wazeインテグレーションに設定する
- 27. C#SharpDXテクスチャ座標を正しく設定する方法は?
- 28. 極座標を使ったアニメーションのプロット
- 29. マップの座標の境界をデフォルトに設定する(0、0)
- 30. JFreechart極座標図形アノテーション
ありがとうございました。私のポストの2番目の写真のように、10リングと24セグメントのようにパラメータを変更する必要がありますか? –
これは値によって異なります。スポークの場合は簡単です:x-minimum = 0からx-maximum = 360、x-interval = 15になります。リングはトリッキーです。読みにくいですが、外に出ているようですね。そしてそれらはすべて全く異なる価値を持っていないのですか?これは達成するのは簡単ではありません。それにはいくつかのデータベースのロジックがありますか、それを表示するのではなくデータを定義するチャートですか? - そのような10個のリングを得ることは、上記の公式では問題ではありませんが、最終的にはすべてのラベルが表示されます。 – TaW
はい申し訳ありません私は10のリングだけの写真には、チャートには関係のない番号が必要です。 –