C# 在xna上绘制圆的线段

C# 在xna上绘制圆的线段,c#,xna,C#,Xna,如何在xna中绘制圆形扇区(如比萨饼形状的一片) 我想使用一个作为计时器指示器,所以希望能够动态地改变它的角度 在一个理想的世界里,我在寻找这样的东西: Drawsector (float startAngle, float endAngle, ... ) 这样的事情存在吗 如果是这样的话,我该如何画一幅更具图形性的画(而不仅仅是块颜色)不 所有这些都没有丢失,因为绘制一个圆可以被看作是简单地绘制一系列非常短的相互连接的线段,这些线段足够小,以至于你无法分辨它们是直线,但也不能太小以至于效率低

如何在xna中绘制圆形扇区(如比萨饼形状的一片)

我想使用一个作为计时器指示器,所以希望能够动态地改变它的角度

在一个理想的世界里,我在寻找这样的东西:

Drawsector (float startAngle, float endAngle, ... )
这样的事情存在吗

如果是这样的话,我该如何画一幅更具图形性的画(而不仅仅是块颜色)

所有这些都没有丢失,因为绘制一个圆可以被看作是简单地绘制一系列非常短的相互连接的线段,这些线段足够小,以至于你无法分辨它们是直线,但也不能太小以至于效率低下

在XNA中,您将绘制一个
基本类型.LineStrip

:

数据按线段序列排序;每条线段由一个新顶点和上一条线段的最后一个顶点描述。计数可以是任何正整数

e、 g.(来自)

GraphicsDevice.DrawUserIndexedPrimitives(
PrimitiveType.LineStrip,
原始列表,
0,//要添加到索引缓冲区的每个元素的顶点缓冲区偏移量
8,//要绘制的顶点数
线条索引,
0,//要读取的第一个索引元素
7//要绘制的基本体的数量
);
您需要创建自己的函数来确定与要绘制的圆弧匹配的顶点。您应该将其保存到永久索引和vertice缓冲区中,而不是在游戏循环中一直执行
DrawSector()

告诉我更多

所有这些都没有丢失,因为绘制一个圆可以被看作是简单地绘制一系列非常短的相互连接的线段,这些线段足够小,以至于你无法分辨它们是直线,但也不能太小以至于效率低下

在XNA中,您将绘制一个
基本类型.LineStrip

:

数据按线段序列排序;每条线段由一个新顶点和上一条线段的最后一个顶点描述。计数可以是任何正整数

e、 g.(来自)

GraphicsDevice.DrawUserIndexedPrimitives(
PrimitiveType.LineStrip,
原始列表,
0,//要添加到索引缓冲区的每个元素的顶点缓冲区偏移量
8,//要绘制的顶点数
线条索引,
0,//要读取的第一个索引元素
7//要绘制的基本体的数量
);
您需要创建自己的函数来确定与要绘制的圆弧匹配的顶点。您应该将其保存到永久索引和vertice缓冲区中,而不是在游戏循环中一直执行
DrawSector()

告诉我更多

所有这些都没有丢失,因为绘制一个圆可以被看作是简单地绘制一系列非常短的相互连接的线段,这些线段足够小,以至于你无法分辨它们是直线,但也不能太小以至于效率低下

在XNA中,您将绘制一个
基本类型.LineStrip

:

数据按线段序列排序;每条线段由一个新顶点和上一条线段的最后一个顶点描述。计数可以是任何正整数

e、 g.(来自)

GraphicsDevice.DrawUserIndexedPrimitives(
PrimitiveType.LineStrip,
原始列表,
0,//要添加到索引缓冲区的每个元素的顶点缓冲区偏移量
8,//要绘制的顶点数
线条索引,
0,//要读取的第一个索引元素
7//要绘制的基本体的数量
);
您需要创建自己的函数来确定与要绘制的圆弧匹配的顶点。您应该将其保存到永久索引和vertice缓冲区中,而不是在游戏循环中一直执行
DrawSector()

告诉我更多

所有这些都没有丢失,因为绘制一个圆可以被看作是简单地绘制一系列非常短的相互连接的线段,这些线段足够小,以至于你无法分辨它们是直线,但也不能太小以至于效率低下

在XNA中,您将绘制一个
基本类型.LineStrip

:

数据按线段序列排序;每条线段由一个新顶点和上一条线段的最后一个顶点描述。计数可以是任何正整数

e、 g.(来自)

GraphicsDevice.DrawUserIndexedPrimitives(
PrimitiveType.LineStrip,
原始列表,
0,//要添加到索引缓冲区的每个元素的顶点缓冲区偏移量
8,//要绘制的顶点数
线条索引,
0,//要读取的第一个索引元素
7//要绘制的基本体的数量
);
您需要创建自己的函数来确定与要绘制的圆弧匹配的顶点。您应该将其保存到永久索引和vertice缓冲区中,而不是在游戏循环中一直执行
DrawSector()

告诉我更多
GraphicsDevice.DrawUserIndexedPrimitives<VertexPositionColor>(
    PrimitiveType.LineStrip,
    primitiveList,
    0,   // vertex buffer offset to add to each element of the index buffer
    8,   // number of vertices to draw
    lineStripIndices,
    0,   // first index element to read
    7    // number of primitives to draw
);