This commit is contained in:
backuppc
2026-02-10 14:53:54 +09:00
parent c2cc5d67ae
commit 471b8ff9c4
18 changed files with 786 additions and 743 deletions

View File

@@ -478,8 +478,32 @@ namespace AGVNavigationCore.Controls
// But this method draws normal first.
// So I should refactor to calculate path first, then draw?
// Or just draw highlight on top with alpha?
// Let's draw highlight on top with non-filled center? No, it's a line.
// I'll draw highlight on top for now, maybe with alpha.
// Let's draw highlight on top for now, maybe with alpha.
}
// 선택된 마그넷 핸들 그리기
if (magnet == _selectedNode && _canvasMode == CanvasMode.Edit)
{
using (var handleBrush = new SolidBrush(Color.White))
using (var handlePen = new Pen(Color.Black, 1))
{
float size = HANDLE_SIZE / _zoomFactor;
float half = size / 2;
// 시작점, 끝점 핸들
g.FillRectangle(handleBrush, startPoint.X - half, startPoint.Y - half, size, size);
g.DrawRectangle(handlePen, startPoint.X - half, startPoint.Y - half, size, size);
g.FillRectangle(handleBrush, endPoint.X - half, endPoint.Y - half, size, size);
g.DrawRectangle(handlePen, endPoint.X - half, endPoint.Y - half, size, size);
// 제어점 핸들 (곡선일 경우)
if (magnet.ControlPoint != null)
{
var cp = magnet.ControlPoint;
g.FillRectangle(handleBrush, (float)cp.X - half, (float)cp.Y - half, size, size);
g.DrawRectangle(handlePen, (float)cp.X - half, (float)cp.Y - half, size, size);
}
}
}
}
@@ -488,11 +512,10 @@ namespace AGVNavigationCore.Controls
if (_marks == null) return; // _marks 리스트 사용
int sensorSize = 12; // 크기 설정
int lineLength = 20; // 선 길이 설정
int halfLength = lineLength / 2;
foreach (var mark in _marks)
{
int lineLength = (int)mark.Length; // 저장된 길이 사용
int halfLength = lineLength / 2;
Point p = mark.Position;
double radians = mark.Rotation * Math.PI / 180.0;
@@ -514,6 +537,22 @@ namespace AGVNavigationCore.Controls
g.DrawLine(highlightPen, p1, p2);
}
}
// 선택된 마크 핸들 그리기
if (mark == _selectedNode && _canvasMode == CanvasMode.Edit)
{
using (var handleBrush = new SolidBrush(Color.White))
using (var handlePen = new Pen(Color.Black, 1))
{
float size = HANDLE_SIZE / _zoomFactor;
float half = size / 2;
g.FillRectangle(handleBrush, p1.X - half, p1.Y - half, size, size);
g.DrawRectangle(handlePen, p1.X - half, p1.Y - half, size, size);
g.FillRectangle(handleBrush, p2.X - half, p2.Y - half, size, size);
g.DrawRectangle(handlePen, p2.X - half, p2.Y - half, size, size);
}
}
}
}