本文整理汇总了C#中Pen.ColorAt方法的典型用法代码示例。如果您正苦于以下问题:C# Pen.ColorAt方法的具体用法?C# Pen.ColorAt怎么用?C# Pen.ColorAt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pen
的用法示例。
在下文中一共展示了Pen.ColorAt方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Compile
/// <summary>
/// Compiles the grid's geometry from the given <see cref="Pen"/> and overall dimensions into a <see cref="DrawCache"/> object.
/// </summary>
/// <param name="pen">The <see cref="Pen"/> to render the grid's lines with.</param>
/// <param name="left">The ledge edge of the grid.</param>
/// <param name="top">The top edge of the grid.</param>
/// <param name="width">The width of the grid.</param>
/// <param name="height">The height of the grid.</param>
/// <returns>A <see cref="DrawCache"/> with the compiled geometry.</returns>
/// <remarks>Only the most recently compiled <see cref="DrawCache"/> is valid for any given <see cref="Grid"/>.</remarks>
public DrawCache Compile (Pen pen, float left, float top, float width, float height)
{
short vIndex = 0;
short iIndex = 0;
float w2 = pen.Width / 2;
for (int y = 0; y <= _rows; y++) {
for (int x = 0; x <= _columns; x++) {
float px = left + (width / _columns) * x;
float py = top + (height / _rows) * y;
AddVertex(_vertexBuffer, vIndex + 0, px - w2, py - w2, pen.ColorAt(0, 0, 0));
AddVertex(_vertexBuffer, vIndex + 1, px + w2, py - w2, pen.ColorAt(0, 0, 0));
AddVertex(_vertexBuffer, vIndex + 2, px - w2, py + w2, pen.ColorAt(0, 0, 0));
AddVertex(_vertexBuffer, vIndex + 3, px + w2, py + w2, pen.ColorAt(0, 0, 0));
AddQuad(_indexBuffer, iIndex, vIndex);
vIndex += 4;
iIndex += 6;
}
}
for (int y = 0; y < _rows; y++) {
for (int x = 0; x <= _columns; x++) {
int baseV1 = (y * (_columns + 1) + x) * 4;
int baseV2 = ((y + 1) * (_columns + 1) + x) * 4;
AddQuad(_indexBuffer, iIndex, (short)(baseV1 + 2), (short)(baseV1 + 3), (short)(baseV2 + 0), (short)(baseV2 + 1));
iIndex += 6;
}
}
for (int y = 0; y <= _rows; y++) {
for (int x = 0; x < _columns; x++) {
int baseV1 = (y * (_columns + 1) + x) * 4;
int baseV2 = baseV1 + 4;
AddQuad(_indexBuffer, iIndex, (short)(baseV1 + 1), (short)(baseV2 + 0), (short)(baseV1 + 3), (short)(baseV2 + 2));
iIndex += 6;
}
}
_serial[0]++;
DrawCache cache = new DrawCache();
cache.AddUnit(new GridCacheUnit(_vertexBuffer, _indexBuffer, pen.Brush.Texture, _serial));
return cache;
}