johnwdubois / rezonator

Rezonator: Dynamics of human engagement
35 stars 2 forks source link

Draw arrowhead for Links using Whiskers #463

Open johnwdubois opened 4 years ago

johnwdubois commented 4 years ago

Is your feature request related to a problem? Links should display more information. Currently, what is drawn to the screen is a simple line, showing the Link between two words. What's missing? There's no visible difference between Source and Goal.

What to do

  1. Draw an arrowhead at the Goal end of the Link line, where it meets the Word box.
  2. Users should have the option to Show/Hide arrowheads.
  3. The arrowhead should be designed to meet the Word box from any of 8 cardinal directions.
    • 90 degrees: North, East, West, South
    • 45 degrees: NE, SE, SW, NW
  4. Use Whisker lines & tips to position the arrowheads correctly.

Whisker lines (see #363 )

  1. Create 8 target points for Track links: WhiskerNorth, WhiskerSouth, etc.
    • WhiskerNorthTip is one millimeter or so above the word box, on the horizontal center line;
    • WhiskerSouthTip is one millimeter below.
  2. The Whiskers ensure the 90º entrance and exit from the Word box. They also help position the arrowhead at 90º.
  3. To allow a continuous curve, the Whiskers can "bend" slightly to left or right, as needed.
  4. Whisker tip points should be created for all 8 cardinal diriections, relative to the Word box. This will allow for correct placement of arrowheads for Track chains, etc.

Additional context

  1. For now, arrowheads for different types of Links look the same; but in the future, they may depend on whether the Link = {Rez, Track, Stack, Dep....}. etc.
  2. Related to #469 and #222 and #445 .
johnwdubois commented 4 years ago
  1. Use the Compass system to pick an attachment point for the arrowhead:
    • Preferred attachment = North (assuming arrow points down)
    • Attachment = South (if arrow points up)
    • Attachment = West (for side-links, if arrow points right)
    • Attachment = East (for side-links, if arrow points left)
  2. The arrowhead should be subtle, and should scale relative to the font size (no larger than the letter "v", and preferably skinnier/pointier).