私の問題を説明する方法がわからないので、表示しようとします:
これらの楕円は実際には円です。ウィンドウのサイズを変更すると、次のようになります。
ご覧のとおり、今は円がありますが、ウィンドウのサイズを変更しても取得できないことがあります。何を変更する必要があるかを誰かが知っていれば、もうサイズを変更する必要はありませんか?
これは私のプロットウィンドウです:
<Window x:Class="View.Views.PlotWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:oxy="http://oxyplot.org/wpf"
Title="PlotWindow" MinHeight="600" MinWidth="800" WindowStartupLocation="CenterScreen">
<oxy:PlotView Model="{Binding PlotModel}" />
</Window>
およびプロット モデルを作成する方法。
public override PlotModel DrawPlot(Data data)
{
ObservableCollection<Radial> radials = ((RdData)data).Radials;
if (data.Records[0].Items.Count > 2)
return null;
PlotModel model = new PlotModel();
int i = 0;
foreach (var r in radials)
{
var rad = generateRadialFunc(r);
var series = new FunctionSeries();
foreach (var p in rad)
{
series.Points.Add(new DataPoint(p[0], p[1]));
}
series.MarkerSize = 2;
series.MarkerStrokeThickness = 1;
series.Title = "Radial (" + string.Format("{0:N2}", r.centerCoordinates.Items[0].Value) + ';' + string.Format("{0:N2}", r.centerCoordinates.Items[1].Value) + ')';
i++;
model.Series.Add(series);
}
scatterAndAxis(model, data);
return model;
}
protected double[][] generateRadialFunc(Radial radial)
{
double[][] rad = new double[3600][];
int j = 0;
for (double i = 0.0; i <= 360.0; i+=0.1)
{
rad[j] = new double[2];
double angle = i * Math.PI / 180;
rad[j][0] = radial.centerCoordinates.Items[0].Value + radial.R * Math.Cos(angle);
rad[j][1] = radial.centerCoordinates.Items[1].Value + radial.R * Math.Sin(angle);
j++;
}
return rad;
}