public ResultItem Execute() { int columnCount = matrix.GetMatrixColumnCount(); int rowCount = matrix.GetMatrixRowCount(); // 列长度 uint columnLength = rectangle.GetRight() - (rectangle.GetLeft() + (uint)columnDeviation); // 行高度 uint rowLength = rectangle.GetBottom() - (rectangle.GetTop() + (uint)rowDeviation); // 列间隔 uint columnCellInterval = columnLength / (uint)matrix.GetMatrixColumnCount(); // 行间隔 uint rowCellInterval = rowLength / (uint)matrix.GetMatrixRowCount(); // 列起始位置 uint columnStartPosition = rectangle.GetLeft() + (uint)columnDeviation; // 行起始位置 uint rowStartPosition = rectangle.GetTop() + (uint)rowDeviation; // 计算目标点矩阵的坐标 for (int i = 0; i < rowCount; i++, rowStartPosition += rowCellInterval) // 完成一行后加上行间隔 { columnStartPosition = rectangle.GetLeft() + (uint)columnDeviation; // 完成一行后初始化列的横坐标 for (int j = 0; j < columnCount; j++, columnStartPosition += columnCellInterval) // 完成一列后加上列间隔 { ExportPointMatrixItem item = matrix.GetExportPointMatrixItem(i, j); item.PointX = (int)(columnStartPosition + columnCellInterval / 2); // 列初始位置坐标加上间隔的一半为目标点的横坐标 item.PointY = (int)(rowStartPosition + rowCellInterval / 2); // 行初始位置坐标加上间隔的一半为目标点的纵坐标 // matrix.SetExportPointMatrixItem(i, j, item); } } StringBuilder sb = new StringBuilder(); sb.AppendFormat("计算矩阵点选位置完成"); #if DEBUG Console.WriteLine(sb.ToString()); #endif return(new ResultItem(ResultItem.States.OK, sb.ToString())); }
private void SaveSettingsToFile() { using (FileStream fs = File.Open("settings.dat", FileMode.Create)) { try { using (BinaryWriter w = new BinaryWriter(fs)) { w.Write(settings.StepDelay); w.Write(settings.RetryStepDelay); w.Write(settings.MaximumNumberOfRetries); int rowsCount = instance.GetMatrixRowCount(); int columnsCount = instance.GetMatrixColumnCount(); w.Write(rowsCount); w.Write(columnsCount); w.Write(settings.RowDeviation); w.Write(settings.ColumnDeviation); IIterator instanceIterator = instance.Iterator(); instanceIterator.First(); while (!instanceIterator.IsDone()) { ExportPointMatrixItem item = instanceIterator.CurrentItem(); w.Write(item.PointDescription); w.Write(item.IsAvaliable); instanceIterator.Next(); } w.Close(); } #if DEBUG Console.WriteLine("写入文件完成"); #endif } catch (IOException e) { #if DEBUG Console.WriteLine("写入文件发生 IO 错误: " + e.Message); #endif } } }
public int GetColumnCount() { return(matrix.GetMatrixColumnCount()); }