Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Punti su schema grafico e loro collegamento

Ipotizziamo di avere un numero (sconosciuto, ma finito) di punti da
rappresentare graficamente in una picturebox di dimensioni ridotte,
rettangolare. Opportune indicazioni faranno in modo di collegare con delle
linee questi punti, non "tutti a tutti", ma, potenzialmente, "molti a
molti". Al momento non mi interessa assolutamente l'aspetto estetico, ma la
"chiarezza" dello schema, pur ignorando gli "incroci" fra linee.
Ho provato a randomizzare la disposizione dei punti all'interno di
pic.scale<width height>, ma non sono soddisfatto in quanto le linee (pur
usando colori diversi) a volte si sovrappongono (si pensi a un punto da cui
si dipartono 3/4 linee verso altri punti che siano "ortogonalmente vicini"
e, insomma, non è ben chiaro quali siano i collegamenti da un punto verso
gli altri. Se, per esempio, un punto a Y=100 ha dei collegamenti ad altri
punti a Y=circa100 le linee (vicine all'essere orizzontali) non sono ben
distinguibili. Non voglio, per ora, fare ragionamenti trigonometrici per
tracciare una linea in due o più tratti...
La domanda è questa: C'è un modo di disporre i punti (ripeto, l'aspetto
estetico, non mi importa assolutamente) all'interno dell' "area di disegno"
(picturebox) in modo che i vari collegamenti (linee) siano il più possibile
evidenti, ovvero meno "sovrapposti"? Grazie.

*Lupo* intanto che scriveva ci ha pensato:
Probabilmente la "figura" migliore è il cerchio, ovvero distribuire
"proporzionalmente" i vari punti su di una circonferenza con diametro pari
al lato minore (meno qualcosa) della picturebox...

*Lupo* ci ha deliziati con queste righe
 Quote:

giuro che me lo devo rileggere con calma perche' non ci ho capito molto...
allora dici che vuoi unire dei punti, con lo scopo che siano ben visibili i
tratti di unione ... bene , allora sposta le linee , ma poi dici che non
vuoi ne spostare le linee ne dividerli in + segnmenti ... bho ^_^;
scusa non e' meglio ragionare come se ti trovassi su una griglia ? in
pratica da un punto all'altro tracci tanti piccoli segmentini, alla seconda
linea stai attento a non passare per i nodi che hanno gia' una linea ...
in pratica se usi una griglia hai da considerare le X e le Y e quindi gia'
in partenza sai la dimensione e direzione delle tue linee , se ne parte
1sola
usi il punto + vicino e bon altrimenti se ne partono 3 disegni la prima al
centro e le altre due ai lati , conta che la grigliapuo' essere anche di 5
pixel che ad occhio nudo e' quasi accettabile, oppure alla fine
dell'elaborazione ritracci i segmenti che vanno dritti ?!?! che ne pensi ?
-- 
<Gigio2K>
Sito Comune
Nokia -> I.T.H.N. -> 
http://www.ithn.it/
VB -> I.C.L.VB -> 
http://www.it-lang-vb.net/

 linea stai attento a non passare per i nodi che hanno gia' una linea ...
No, un nodo può avere più linee, ciascuna verso un altro nodo... Non mi
interessano gli incroci (nel senso che ci sono e li prendo come vengono),
quel che mi interessa è che due o più linee, proprio perchè possono avere
direzioni molto simili, risultino il più possibile distinguibili.
La "soluzione" spartana è quella che dicevo e che ho già realizzato:
Distribuire i vari punti su una circonferenza, sfruttando al massimo lo
spazio disponibile sulla stessa. Credo che sia il modo più sicuro per avere
linee ben distinte.

 lo spazio disponibile sulla stessa.
ok ma una circonferenza, se la analizzi, alla fine cos'e' ? Si trasforma in
una serie di punti tipo :
(X,Y)
5,1
4,2
3,3
2,4
1,5
che altro non e' che una serie di punti di una griglia (+o- fitta...) ^_^
quindi fino a quando non mi fai un disegnino di quello che vuoi , io resto
della mia : usa una griglia , analizza i punti e le loro direzioni e assegna
i punti iniziali di conseguenza (oppure perfezionali con le linee a
segmenti) :p
