Menu

#6 Freccie tra blocchi

Analisi
open
nobody
analisi (10)
2012-02-22
2012-02-21
No

Tipi di freccie:

  • Si possono sdoppiare da un punto di controllo (matlab/simulink CTRL+Click)
  • Non diagonali

Oppure usare algoritmo intelligente per effettuare questo lavoro. Come spiegato, riconoscendo il punto a metà tra le due linee è possibile tirare automaticamente la linea.
Caso speciale: dx o dy tra due linee è meno di un tot (es. 10px) => Disegna linea

Tipologia freccia:

  • Colore, Dimensione, Tratto (controllabili con Graphics)
  • Il colore cambia in base a qualche cosa?

Intersezioni:

  • Per l'intersezione delle linee basta usare Line.interescts
  • Per l'interesezione degli oggetti basta usare Rectangle.intersects
  • Decidere che fare in caso di intersezione:
  • Nel caso di intersezioni di blocchi, il blocco che è stato spostato per ultimo torna nella ultima posizione NON intersecante
  • Nel caso di linee, chissenefrega?
  • Intersezione linea/blocco (il blocco deve stare di fronte e dunque le linee vanno disegnate prima) -> Vedere Composite di java2D

Possiblità di scegliere se usare curva di bezier?
List<point2d> list = new ArrayList<point2d>();
for (double t = 0.0; t <= 1.0; t += step) {
// (1-t)^2P1 + 2(1-t)tC + t^2*P2
Point2D p = new Point2D.Double(
pow(1.0 - t, 2.0) * p1.getX() + 2 * (1.0 - t) * t * control.getX() + pow(t, 2.0) * p2.getX(),
pow(1.0 - t, 2.0) * p1.getY() + 2 * (1.0 - t) * t * control.getY() + pow(t, 2.0) * p2.getY());
list.add(p);
}</point2d></point2d>

Discussion


Log in to post a comment.

MongoDB Logo MongoDB