2010-10-02 3 views
1

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

public Point tradPoint(Point P){  
    Point Ptd = new Point(); 

    Ptd.x=getWidth()/2 + P.x*getWidth()/20; 
    Ptd.y=getHeight()/2 - P.y*getHeight()/20; 

    return Ptd; 
} 

, но он не работает.

Следует отметить, что я использую декартову систему координат и единицу = 20. Любые предложения?

Благодаря

+0

Когда вы говорите, что «единица = 20» означает, что одна единица в координатах «P» равна одной двадцатой вашей ширины/высоты? Кажется, это то, что вы закодировали. – Troubadour

+0

Пожалуйста, перефразируйте «не работает». Вы единственный, кто может видеть, что происходит и что вы ожидали. –

+0

он возвращает Ptd.y всегда отрицательное число –

ответ

3

Должно быть

Ptd.x = getWidth()/2 + P.x * 20; 
Ptd.y = getHeight()/2 - P.y * 20; 

, где 20 является ширину блока.

Кроме того, Ptd должен быть pTd или даже лучше pointTranslated и P должны быть p или point. Идентификаторы Java должны начинаться с строчной буквы и быть описательными.

+0

большое спасибо, но это не сработало, возможно, ширина единицы измерения im принимается неправильно, есть ли другой способ? –

+0

@Mona: Каким образом это не сработало? – Troubadour

+0

@Mona: Это должно сработать. Может быть, есть еще одна проблема? Какие результаты вы получаете для каких вкладов? –