next up previous contents
suivant: Conclusion monter: Implémentation précédent: Mises à jour en   Table des matières

Contexte d'affichage et coordonnées absolues

Pour permettre une édition partagée dans de bonnes conditions et pour éviter tous les problèmes que pourrait provoquer une déconnexion du réseau, il faut que chaque client ait sa propre structure de données et qu'il informe les autres des modifications qu'il opère dessus.

Par ailleurs, pour que justement les clients puissent visualiser la même page à des échelles différentes et avec des polices différentes, il faut qu'il y ait deux systèmes de coordonnées : des coordonnées absolues, communes à tous les clients, et des coordonnées propres au contexte d'affichage de chaque client. Les clients dialoguent donc, en utilisant les coordonnées absolues, que chacun reconvertit en fonction de son contexte d'affichage.

Figure 4.5: agrandissement d'une zone du document original dans une fenêtre client

Nous supposons en premier lieu que tous les points de vues sont proportionnels les uns par rapport aux autres, donc que le rapport entre longueur et largeur est constant.
Soit par exemple la figure 4.5, la zone grisée du document original en coordonnées absolues est agrandie et représente la fenêtre d'affichage d'un client donné.
Soit (X75#75,Y75#75) les coordonées du coin supérieur gauche de la zone grisée et (X76#76,Y76#76) les coordonnées de son coin inférieur droit.
Soit X77#77 et Y77#77 les largeur et longueur de la page en coordonnées absolues.
l'échelle d'affichage pour le client est donc :
E= X77#77 / (X76#76 - X75#75)
qui est d'ailleurs égale à
E= Y78#78 / (Y76#76 - Y75#75)
car tous les points de vues gardent les mêmes proportions.
Soit le Point M de coordonnées (x,y) sur le document original, et le point M' de coordonnées (x',y') son image sur le document client, on a alors :
x'=(x - X75#75)*E et
y'=(y - Y75#75)*E
et inversement
x=x'/E + X75#75 et y=y'/E + Y75#75
C'est ainsi que nous passons du système de coordonnées relatif d'un client au système de coordonnées absolues.
Avoir supposé au départ que toutes les fenêtres d'affichage étaient proportionnelles entre elles n'est pas contraignant, car il est toujours possible de n'afficher qu'une partie du document dans la fenêtre. Ainsi, les points de vues sont effectivement tous proportionnels entre eux, mais la fenêtre peut avoir n'importe quelle taille.

Figure 4.6: la taille de la fenêtre du client est quelconque


next up previous contents
suivant: Conclusion monter: Implémentation précédent: Mises à jour en   Table des matières
Nabil Bouzaiene 2000-07-12