У меня есть панель с backgroundimage
, имитирующая график XY, как вы можете видеть на изображении ниже.Конвертировать XY ссылку на ссылку на пиксель
Я создаю pictureboxes
динамически на основе данных, вводимых пользователем:
- количество изображений
- (X, Y) координаты
Проблема заключается в том, что координаты определенных в программном обеспечении нативной машине, с диапазоном X and Y from -100 to +100
. Моя панель 200px x 200px.
Я пытался что-то вроде:
If X < 0 and then
X0 = X-100
ElseIf X > 0 then
X0 = X+100
Else
X0 = X
End If
(...)
PictureBox(n).location = new point (X0,Y0)
Но я думаю, что это не хорошо, чтобы сделать что-то вроде этого. Любая идея сделать это лучше?
---- EDIT ----
Лучший подход до сих пор:
Select Case X And Y
Case CInt(X < 0 And Y > 0)
X0 = X + 100
Y0 = Y - 100
Case CInt(X < 0 And Y < 0)
X0 = X + 100
Y0 = Y + 200
Case CInt(X > 0 And Y > 0)
X0 = X + 100
Y0 = Y + 100
Case CInt(X > 0 And Y < 0)
X0 = X + 100
Y0 = Y + 200
'Missing when X=0 and so on
End Select
---- EDIT ----
Теперь посмотрим на примере.
Все ответы, которые вы даете, не соответствуют вопросу.
| X | Y | | X0 | Y0 |
|-100|100 | | 0 | 0 |
| 20 | 40 | |120 | 60 |
| -60|-20 | | 40 | 120 |
| 60|-80 | | 160| 180 |
бы [Modulo] (https://en.wikipedia.org/wiki/Modulo_operation) помочь? –
@UweKeim Похоже, вы! Я ищу аналогичную функцию, чтобы проверить ее! –
поэтому ваша панель 500px x 500px или 200px x 200px? и вы хотите конвертировать из (от -100 до 100) в (от 0 до 500)? если да, вы можете сделать просто: '(X + 100) * (500/200)' где 200 - это расстояние от -100 до 100 –