小编Fra*_*oty的帖子

所有案例都涉及Bresenham的线算法

我需要检查一行中的所有像素,所以我使用Bresenham的算法来访问其中的每个像素.特别是我需要检查所有像素是否都位于位图的有效像素上.这是代码:

private void Bresenham(Point p1, Point p2, ref List<Point> track) {
  int dx = p2.X - p1.X;
  int dy = p2.Y - p1.Y;

  int swaps = 0;
  if (dy > dx) {
    Swap(ref dx, ref dy);
    swaps = 1;
  }

  int a = Math.Abs(dy);
  int b = -Math.Abs(dx);

  double d = 2*a + b;
  int x = p1.X;
  int y = p1.Y;
  color_track = Color.Blue;
  Check_Pixel(ref area, new Point(x,y));
  track.Clear();
  track.Add(new Point(x, y));

  int s = 1;
  int q = …
Run Code Online (Sandbox Code Playgroud)

.net c# algorithm line bresenham

7
推荐指数
1
解决办法
2万
查看次数

List,Array还是其他什么?

我需要一个动态长度的数据结构,能够更改元素值.元素的顺序并不重要.

  • 如果我使用数组我可以修改我的元素,但我的长度有问题.解决方案是创建一个正确大小的新数组,并每次将所有元素复制到新数组中.不是一个好主意,因为元素的数量经常变化.

  • 最好使用通用列表,但修改过程非常复杂:首先我需要删除我想要更改的元素 - 通用列表似乎没有简单的"删除"/"删除"方法,所以我尝试了"过滤器" - 然后将修改后的元素添加到头部.它有效,但对于这么简单的事情来说有点太复杂了.

是否有一个数据结构允许我动态更改长度并修改元素,如可修改列表或动态大小的数组?

.net arrays f# list data-structures

4
推荐指数
2
解决办法
545
查看次数

按属性值选择 XML 节点

<location>
  <hotspot name="name1" X="444" Y="518" />
  <hotspot name="name2" X="542" Y="452" /> 
  <hotspot name="name3" X="356" Y="15" />
</location>
Run Code Online (Sandbox Code Playgroud)

我有一个点变量,我需要选择节点及其坐标,然后更改属性值。我想做类似的事情:

<location>
  <hotspot name="name1" X="444" Y="518" />
  <hotspot name="name2" X="542" Y="452" /> 
  <hotspot name="name3" X="356" Y="15" />
</location>
Run Code Online (Sandbox Code Playgroud)

但通过变量获取属性值(变量名.X / 变量名.Y)。

.net xml f#

3
推荐指数
1
解决办法
1万
查看次数

枚举的颜色

我的想法是在一些颜色之间切换,所以我不必使用多个笔,但我只能声明一个.

我不太确定能够准确理解枚举是如何工作的,请纠正我:

type ColorType =
  | Red = Color.Red
  | Green = Color.Green
  | Blue = Color.Blue
Run Code Online (Sandbox Code Playgroud)

我希望用它:

let p = new Pen(ColorType.[index])
g.DrawRectangle(p, 0, 0, 10, 10)
Run Code Online (Sandbox Code Playgroud)

其中index是一个int变量(0到2)我将用来切换我的颜色.问题是我无法声明枚举,不接受Color.可能的解决方案?

.net enums f# colors

0
推荐指数
2
解决办法
775
查看次数

标签 统计

.net ×4

f# ×3

algorithm ×1

arrays ×1

bresenham ×1

c# ×1

colors ×1

data-structures ×1

enums ×1

line ×1

list ×1

xml ×1