webmail123 Ответов: 1

Установите отрицательные координаты для изображения в C#


У меня есть значения координат x и y в моей базе данных. В случае нажатия кнопки я хочу отобразить маленькую точку на изображении для этих координат, например, значения, которые у меня есть для координат x и y, выглядят следующим образом:

XLoc    YLoc
0.78    -3.22
1.6     -5.02
1.29    -5.71
1       -2.26
0.6     -2.11


и так далее....

Что я уже пробовал:

private void btnSetCoordinates_Click(object sender, EventArgs e)
      {
          try
          {
              Bitmap PicBox1 = new Bitmap(picImage.Image);

              ((Bitmap)picImage.Image).SetPixel(txtXloc.Text, txtYLoc.Text, Color.Black);
              picImage.Refresh();

          }
          catch (Exception ex)
          {
              MessageBox.Show(ex.Message);
              throw;
          }

      }


Когда я пытаюсь установить любое отрицательное значение пикселя на изображении, он выдает ошибку. Кто-нибудь может пожалуйста помочь мне?

F-ES Sitecore

Что вы хотите, чтобы произошло, когда кто-то устанавливает пиксель в отрицательной точке?

webmail123

Я не получил от тебя вопроса.
Я хочу показать пиксель по заданным координатам x и Y. На данный момент я получаю ошибку, говорящую: "параметр должен быть положительным".

F-ES Sitecore

Если изображение имеет размер 100 на 100 пикселей, то (0,0) - это верхний левый угол, (100, 0) - верхний правый, (0,100) - нижний левый и (100,100) - нижний правый, так где же -10, -10?

webmail123

Вот тут-то мне и нужна помощь. Мне нужно преобразовать эти координаты в фактические координаты, которые совместимы с изображением 100px на 100px.(это всего лишь пример)

F-ES Sitecore

Вы все еще не ответили на вопрос...на изображении 100x100,где появится -10, -10? Пока вы не знаете ответа на этот вопрос, вы не можете написать никакого кода. Вы должны полностью понять проблему, прежде чем писать код для ее решения, вы должны знать входы и выходы,поэтому, если вход -10, -10, то что такое выход?

webmail123

Мне нужно преобразовать эти координаты в пиксели, чтобы я мог их использовать.
Вот такой сценарий:

В принципе у меня есть макет лаборатории и этот макет имеет такие координаты:

- верхний правый угол лаборатории считается исходным (0,0)
- нижний правый угол считается равным (-1, -8.6)
- верхний левый угол считается равным (4.2 , 0)
- нижний левый угол рассматривается как (4.2, -8.6)
- определенно средними точками являются (-1, -4.3) и (4.2, -4.3)


Теперь, если координаты каких-либо элементов равны (0.78, -3.22), то я хочу показать точку на изображении, чтобы отобразить местоположение этого элемента. Итак, теперь мне нужно преобразовать координаты (0.78 , -3.22) в стандартный пиксель, чтобы я мог использовать это значение пикселя для отображения его на изображении. Мне нужна помощь для преобразования этих координат в пиксель.
Вы поняли мою идею??

F-ES Sitecore

Эти точки не имеют математического смысла, координаты, похоже, не описывают квадрат, поскольку нет никакой общей координаты между верхним правым и нижним правым. Таким образом, похоже, что вы пытаетесь отобразить точку внутри многоугольника, используя произвольные значения, которые мы на самом деле не понимаем. Это скорее математическая проблема, чем программная.

1 Ответов

Рейтинг:
1

CPallini

К сожалению, SetPixel документация не помогает. Во всяком случае, GetPixel один[^] делает:

Об
x меньше 0, больше или равно ширине.

-или-

y меньше 0, или больше, или равно высоте.


В принципе, вы не можете обращаться к отрицательным координатам. Однако вы можете преобразовать свои координаты так, чтобы они соответствовали Bitmap коробка.


webmail123

Спасибо за ответ. И я думаю то же самое. Чтобы преобразовать координаты для того, чтобы поместиться в растровом поле. Есть ли для этого какая-то встроенная функция?


В принципе у меня есть макет лаборатории и этот макет имеет такие координаты:

- верхний правый угол лаборатории считается исходным (0,0)
- нижний правый угол считается равным (-1, -8.6)
- верхний левый угол считается равным (4.2 , 0)
- нижний левый угол рассматривается как (4.2, -8.6)
- определенно средними точками являются (-1, -4.3) и (4.2, -4.3)


Теперь, если координаты каких-либо элементов равны (0.78, -3.22), то я хочу показать точку на изображении, чтобы отобразить местоположение этого элемента.
Вы поняли мою идею??

CPallini

Вы уверены, что лабораторная рамка-это не прямоугольник?