有谁知道如何将点值添加到数组?添加点数组
添加点数组
回答
为什么你想要的数组是double
?你可以使用一个Point
数组;
Point[] points = new Point[2];
points[0] = new Point(15,15);
points[1] = new Point(200,220);
double someResult = (points[0].x - points[1].x) * (points[0].y - points[1].y);
或循环它们;
for (int i = 0; i < points.Lenght; i++)
{
// do something with points[i]
}
或者带一个列表;
List<Point> points = new List<Point>();
points.Add(new Point(1,1)); //ect
或
List<Point> points = new { new Point(1,1), new point(2,2) //ect };
foreach (Point p in points)
{
// do something with p
}
,你可能有利于通过循环一些随机LINQ;
double xTotal = points.Aggregate((c, n) => c.x + n.y); // gives sum or all x values
double yTotal = points.Aggregate((c, n) => c.y + n.y);
当我添加两个点到一个数组,这是否意味着该数组将保存4个值?
排序该阵列将保存两个Point
实例。每个人都有x
和y
价值,但通常你会说数组持有2个值。如果你只是想组4双打,你可能根本不想使用Point
。你可以声明一个结构像;
public struct Rect
{
double a;
double b;
double c;
double d;
}
,有你的4个双打更很好地组合在一起。或者你可以使用Tuple<double, double, double, double>
,虽然大多数开发者可能会觉得有点奇怪(嘿,我至少喜欢它们)。但是,它是只读的。
var tuple = new Tuple<double, double, double, double(1, 2, 3, 4);
@ user3213304数组包含两个'Point','Point'每个都有一个'x'和一个'y',所以你有'array [0] .x'' array [0] .y'和'array [1] .x'和'array [1] .y'。你不会说数组有4个值,因为它有2个点,每个点有2个值。你可以有任何类型的数组,这样说数组有4个值,因为每个点有两个没有意义。我可以有一个'File []'或一个'string []'或一个'double []'。数组中的项目数独立于其包含的类型的属性。 – evanmcdonnal
@ user3213304也有一些循环的例子。我不知道你想如何繁殖这些值。如果你只是想应用这个方程式,你必须把所有的项目放在数组或列表中,是的,这很容易。但我认为这样做确实没有意义,我需要更多解释你想要完成的事情。 – evanmcdonnal
谢谢,你解释得很好。 – user3213304
我建议你来声明一个类,那就是:
public class Rectangle
{
public Rectangle(Point left, Point right)
{
Left = left;
Right = right;
}
private Point Left{get; set;}
private Point Right{get; set;}
public double CalculateArea()
{
return (points[0].x - points[1].x) * (points[0].y - points[1].y);
}
}
这里是你如何使用它:
var rec = new Rectangle(new Point(15,15), new Point(200,220));
var someResult = rec.CalculateArea();
一般来说,你会过得更好的重构你的程序使用Point数组,因为它具有更多的语义含义。
但如果这是一个真正的矩形(不是任何四边的形状,你需要四点而不是两个),你可以这样做:
public double[] ConvertPointsToArray(Point topLeft, Point bottomRight)
{
var points = new double[4];
points[0] = topLeft.x;
points[1] = topLeft.y;
points[2] = bottomRight.x;
points[3] = bottomRight.y;
return points;
}
然后你就可以使用这样的阵列:
var points = ConvertPointsToArray(left, right);
var value = (points[0] - points[2]) * (points[1] - points[3]);
但正如你所看到的,你必须知道点是如何在阵列中的编码,很容易陷入困境。
有两个点的矩形类会更有用。
- 1. Android MapView JSON数组添加点数组
- 2. 节点js:util.inspect添加对象到数组
- 3. 使用javascript数组添加节点
- 4. 添加单维浮点数组值
- 5. 添加一个浮点数组
- 6. 添加节点和分组
- 7. 添加参数或添加数组?
- 8. 添加numpy数组
- 9. Java,添加数组
- 10. 添加天数组
- 11. C#将可见节点添加到节点数组
- 12. OpenGL ES - 更新顶点数组,添加/删除顶点
- 13. 添加追加numpy数组
- 14. 在添加值时向数组添加
- 15. 添加元素添加到数组
- 16. 添加倍数args数组
- 17. 向数组添加整数
- 18. 添加零的浮点数
- 19. 在点击对象数组后添加新数据
- 20. 将对象添加到数组数组
- 21. 将数组添加到会话数组
- 22. 将对象添加到数组数组
- 23. 将数组添加到数组
- 24. 将数组添加到数组
- 25. Json数组添加到php数组
- 26. 向数组插入/添加数组
- 27. 添加数组交错数组C#
- 28. 将数组添加到数组PHP
- 29. 将浮点值添加到元组
- 30. Reactjs:点击按钮添加组件
难道你不能只使用一个点数组,然后在需要的时候将X和Y值转换为双倍值? –