fix: 그리드 화면 전체 표시 및 스케일 동적 계산

주요 변경사항:
- 그리드가 화면 전체를 덮도록 수정
- ScreenToWorld를 사용하여 정확한 월드 좌표 계산
- 스케일 표시를 동적으로 계산 (줌에 따라 변경)
- 스케일 정보를 별도 박스로 표시 (좌하단)
- 줌 정보와 스케일 정보 분리 표시

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
backuppc
2025-10-30 11:13:18 +09:00
parent 5378f702e7
commit b04d3aa0cd
7 changed files with 114 additions and 73 deletions

View File

@@ -0,0 +1,25 @@
using System;
namespace AGVSimulator.Forms
{
/// <summary>
/// 경로 예측 테스트 결과 로그 항목
/// </summary>
public class PathTestLogItem
{
public string PreviousPosition { get; set; }
public string MotorDirection { get; set; } // 정방향 or 역방향
public string CurrentPosition { get; set; }
public string TargetPosition { get; set; }
public string DockingPosition { get; set; } // 도킹위치
public bool Success { get; set; }
public string Message { get; set; }
public string DetailedPath { get; set; }
public DateTime Timestamp { get; set; }
public PathTestLogItem()
{
Timestamp = DateTime.Now;
}
}
}

View File

@@ -7,26 +7,6 @@ using System.Windows.Forms;
namespace AGVSimulator.Forms
{
/// <summary>
/// 경로 예측 테스트 결과 로그 항목
/// </summary>
public class PathTestLogItem
{
public string PreviousPosition { get; set; }
public string MotorDirection { get; set; } // 정방향 or 역방향
public string CurrentPosition { get; set; }
public string TargetPosition { get; set; }
public string DockingPosition { get; set; } // 도킹위치
public bool Success { get; set; }
public string Message { get; set; }
public string DetailedPath { get; set; }
public DateTime Timestamp { get; set; }
public PathTestLogItem()
{
Timestamp = DateTime.Now;
}
}
/// <summary>
/// 경로 예측 테스트 진행 상황 로그 표시 폼

View File

@@ -325,7 +325,7 @@ namespace AGVSimulator.Forms
// 도킹 검증이 없는 경우 추가 검증 수행
if (advancedResult.DockingValidation == null || !advancedResult.DockingValidation.IsValidationRequired)
{
if(advancedResult.Path.Count < 1)
if (advancedResult.Path.Count < 1)
{
}
@@ -1228,7 +1228,7 @@ namespace AGVSimulator.Forms
_statusLabel.Text = "초기화 완료";
}
private async void toolStripButton1_Click(object sender, EventArgs e)
{
// 맵과 AGV 확인
@@ -1382,13 +1382,15 @@ namespace AGVSimulator.Forms
{
logItem.Success = true;
logItem.Message = "성공";
logItem.DetailedPath = string.Join(" → ", currentPath.GetDetailedInfo());
//logItem.DetailedPath = string.Join(" → ", currentPath.GetDetailedInfo());
logItem.DetailedPath = currentPath.GetDetailedPathInfo();
}
else
{
logItem.Success = false;
logItem.Message = $"도킹 검증 실패: {dockingValidation.ValidationError}";
logItem.DetailedPath = string.Join(" → ", currentPath.GetDetailedInfo());
//logItem.DetailedPath = string.Join(" → ", currentPath.GetDetailedInfo());
logItem.DetailedPath = currentPath.GetDetailedPathInfo();
}
}
else