Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Отрисовка по координатам Добавлено: 08.10.09 02:38  

Автор вопроса:  topograf

Здравствуйте форумчане.
я недавно начал изучать .net, поэтому требуется помощь.
Задача такая:
есть массив точек с координатами, нужно их отобразить на pictureBoxe и соединить полилинией.
координаты метрические типа x=-1232.2515,y=-1825.2254; x=2541.3365,y=2144.6654 и т.д.
Никак не могу разобраться с единицами измерения.
И желательно что-бы при событии MouseMove, координаты курсора отображались-бы в этих-же координатах, н-р в заголовке формы или в любом другом месте, н-р так:
Me.Text = "x=" & Format(_mouse.X, "#.0000") & " м : y=" & Format(_mouse.Y, "#.0000") & " м".
В идеале, все это должно выглядеть как в AutoCad'e, т.е. возможность увеличения, уменьшения и сдвига картинки.
За любую помощь, заранее спасибо.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #1
Добавлено: 08.10.09 16:20
Допустим у тебя есть:
Xk и Yk - координаты
M - Масштаб
camX и camY - Положение камеры.

преобразуешь их примерно так:
X = (Xk - camX)*M
Y = (Yk - camX)*M

Масштаб можно тоже легко вычислить:
Берешь расстояние от самой левой до самой правой точки(из твоего массива), H.
W - Размер PictureBox.
M=W/H

Ответить

Номер ответа: 2
Автор ответа:
 topograf



Вопросов: 3
Ответов: 12
 Профиль | | #2 Добавлено: 08.10.09 21:26
AWP Понятно, спасибо.
у меня в Form_Load есть такая строка: drawGrafField.CreateGraphics.PageUnit = GraphicsUnit.Millimeter, но разницы я что-то не заметил, как были координаты в пикселях, так и остались.

Ответить

Номер ответа: 3
Автор ответа:
 topograf



Вопросов: 3
Ответов: 12
 Профиль | | #3 Добавлено: 09.10.09 23:36
спасибо за ответы))))
Но все-же хотелось бы знать, как обращаться с GraphicsUnit? Есть в .net возможность отображать координаты точек в нужной системе координат или нет? Если да, то как это осуществить? Желательно примеры. Ы-ы-ы.
Очень нужно.

Ответить

Номер ответа: 4
Автор ответа:
 topograf



Вопросов: 3
Ответов: 12
 Профиль | | #4 Добавлено: 10.10.09 00:28
нашёл на сайте такую процедуру:
    
Public Sub InitializeMatrix()
        _matrix = New Matrix()
        _matrix.Translate(_offsetX, _offsetY)
        _matrix.Scale(1, -1)
        _matrix.Scale(_scaleX, _scaleY)
    End Sub

но у меня она просто увеличивает, или уменьшает все объекты, как лупа(т.е. если линия была толщиной 1 пкс, то при _scale=10? соответственно увеличивает и толщину линии, шрифт и проч.
может я конечно не правильно этим всем пользуюсь? Тогда можно пример, как правильно пользоваться?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам