C# 如何与数字中的标记交互?
我使用.Net的ILNumerics数学库创建了一个简单的线图。我想与绘制的数据交互。应该可以选择绘制数据的子集,并对其执行不同的数学运算。我想使用标记进行选择,但无法检索位置的正确值。我想我必须改变这些观点…也许有人能帮我 下面是代码的简化版本:C# 如何与数字中的标记交互?,c#,plot,ilnumerics,C#,Plot,Ilnumerics,我使用.Net的ILNumerics数学库创建了一个简单的线图。我想与绘制的数据交互。应该可以选择绘制数据的子集,并对其执行不同的数学运算。我想使用标记进行选择,但无法检索位置的正确值。我想我必须改变这些观点…也许有人能帮我 下面是代码的简化版本: private void ilPanel1_Load(object sender, EventArgs e) { var scene = new ILScene(); //create 2D data
private void ilPanel1_Load(object sender, EventArgs e)
{
var scene = new ILScene();
//create 2D data
ILArray<float> line1 = new float[,] {
{0.0f, 1.0f, 2.0f },
{0.0f, 2.0f , 3.0f} };
var linePlot1 = new ILLinePlot(line1.T,
lineColor: Color.Blue,
lineWidth: 3,
markerStyle: MarkerStyle.Dot);
var plot = scene.Add(new ILPlotCube());
plot.Add(linePlot1);
linePlot1.Marker.MouseClick += Marker_MouseClick;
ilPanel1.Scene = scene;
}
private void ilPanel1\u加载(对象发送方,事件参数e)
{
var scene=new ILScene();
//创建二维数据
ILArray line1=新浮点[,]{
{0.0f,1.0f,2.0f},
{0.0f,2.0f,3.0f};
var linePlot1=新的ILLinePlot(line1.T,
线条颜色:颜色。蓝色,
线宽:3,
markerStyle:markerStyle.Dot);
var plot=scene.Add(新的ILPlotCube());
plot.Add(linePlot1);
linePlot1.Marker.MouseClick+=Marker\u MouseClick;
ilPanel1.场景=场景;
}
单击其中一个标记后,将调用Marker_MouseClick事件
void Marker_MouseClick(object sender, ILMouseEventArgs e)
{
ILGroup group = e.Target.Parent;
ILMarker marker = group.First<ILMarker>();
var posx = e.LocationF.X;
var posY = e.LocationF.Y;
}
void Marker\u鼠标单击(对象发送器,ILMouseEventArgs e)
{
ILGroup group=e.Target.Parent;
ILMarker=group.First();
var posx=e.LocationF.X;
var posY=e.LocationF.Y;
}
但是位置并不是指轴的缩放。
有没有简单的方法将LocationF值转换为my axis的缩放?
或者在触发事件后是否有其他方法获取标记的x和y值
Tim鼠标事件参数为您提供LocationF属性。它反映了鼠标在视口(2D)坐标系中的位置。ILNumerics中的视口由ILCamera建立。因此,鼠标位置位于父摄影机节点的坐标系中 为了将鼠标位置转换为绘图立方体的坐标系,必须累积从摄影机到绘图立方体节点的变换矩阵。生成的转换矩阵将任何鼠标位置转换为绘图立方体坐标系 关于这一点,有一个类似的问题:
3d-coordinates-of-a-surface-from-click-location-of-the-mouse/17681163#17681163非常感谢!这回答了我的问题。