Я разрабатываю (не программирую) программу просмотра ряда данных для медицинских данных, используя C # / WPF.Существует одна основная панель, на которой отображаются данные, с общей функциональностью панорамирования / масштабирования мыши (панорамирование с перетаскиванием влево, горизонтальное масштабирование с прокруткой, автоматическая подгонка по вертикали с двойным щелчком, выделение при перетаскивании вправо).
проблема в том, что мне нужна вертикальная и горизонтальная сетка с линейками сверху / слева, аналогичные тем, которые можно увидеть в программах редактирования аудио (goldwave, audacity), картографии (gpsTrackmaker) и ilustration (photoshop, inkscape).Кроме того, эти линейки можно настраивать даже в большинстве API для построения графиков (Matlab, GNUPlot, Matplotlib) и даже в офисных программах (Excel, Calc).
Основным требованием, помимо того, что оно всегда выровнено и масштабировано по содержимому, является наличиеалгоритм «предотвращения сбоев», который рисует только метки тиков с максимально возможной гранулярностью, без меток, «ударяющих» или скрывающих друг друга.
Ниже приведено изображение, показывающее два уровня масштабирования одного и того же чертежа в Inkscape.Первый ряд показывает каждую сотню ярлыков.Во второй строке показываются метки каждого десятилетия.
Вопрос заключается в следующем: «Поскольку это (автоматическое разрешение линеек просмотра) кажется решенной проблемой во многих программах, как мне искать / какие доступныресурсы / учебные пособия, чтобы я мог указать и реализовать такой элемент управления, который соответствует моим потребностям? "
Буду признателен за любые предложения или примеры, желательно на C #, но может быть на любом языке.