2010-10-02 6 views
1

J'essaie de dessiner la courbe d'une fonction, j'ai donc besoin d'une méthode pour convertir les coordonnées de mes points de courbe en coordonnées d'écran, mais je n'arrive pas à le faire fonctionner. est ici la méthode que j'utilise pour convertir:Coordonnées cartésiennes en 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; 
} 

mais il ne fonctionne pas.

Je devrais mentionner que j'utilise un système de coordonnées cartésiennes et une unité = 20. Des suggestions?

Merci

+0

Quand vous dites qu'une unité = 20, voulez-vous dire qu'une unité dans les coordonnées P est égale à un vingtième de votre largeur/hauteur? Cela semble être ce que vous avez codé. – Troubadour

+0

Veuillez reformuler "ne fonctionne pas". Vous êtes le seul à pouvoir voir ce qui se passe et ce que vous attendiez. –

+0

il retourne Ptd.y toujours un nombre négatif –

Répondre

3

devraient-ils être

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

où 20 est la largeur de l'unité.

En outre, Ptd devrait être pTd ou mieux encore pointTranslated et P devrait être p ou point. Les identifiants Java doivent commencer par une lettre minuscule et être descriptifs.

+0

merci beaucoup, mais cela n'a pas fonctionné peut-être la largeur de l'unité im prendre est-il faux, y at-il une autre façon? –

+0

@Mona: En quoi cela n'a-t-il pas fonctionné? – Troubadour

+0

@Mona: Cela devrait fonctionner. Peut-être qu'il y a un autre problème? Quels résultats obtenez-vous pour quelles entrées? –

Questions connexes