Координировать вопросы перевода - PullRequest
0 голосов
/ 21 октября 2011

Мне передали CSV-файл, содержащий серию координат, из которых должны быть нарисованы линии поверх растровой сетки; Я могу получить значения и преобразовать их в целые числа для функции DrawLine и т. Д., Просто отлично.

Проблема в том, что эти координаты в основном в процентах; x: 0.5 и y: 0.5 представляют мертвую точку (будучи 50% от X и 50% от Y), а x: 1.0 / y: 1.0 будет в верхнем правом углу независимо от абсолютных размеров того, на что наносится график (в этот экземпляр - растровое изображение 1000x1500). Кроме того, координаты экрана / окна начинаются в верхнем левом углу, что не влияет на ось X, но необходимо как-то перевернуть ось Y.

Так что мне нужно сделать с координатами, чтобы они правильно построили график? Честно говоря, у меня нормально работает ось X, это проблема с осью Y.

(окно, содержащее растровое изображение 1600x1600, FWIW.)

Ответы [ 2 ]

0 голосов
/ 21 октября 2011

Без более подробной информации о том, что не так, я сделаю предположение и скажу, что вы вычисляете свое значение Y вверх ногами.Попробуйте это так:

round(HEIGHT*(1.0-y))

Затем расскажите подробнее о том, с чем у вас проблемы.

0 голосов
/ 21 октября 2011

Ну, наивный способ - просто вычислить один ближайший пиксель, т.е. round(WIDTH*x)

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

Что бы я сделал, чтобы вычислить процент покрытия для каждой точки - то есть точка может покрыть 75% одного пикселя и 25% его соседа, а затем соответствующим образом заполнить цвет пикселя.

...