Comments on others
JonathanSummary
LADDER is a language that allows describing shapes in a high level almost natural language and then from this description automatically generates Sketch-based interfaces. These interfaces allow the user to draw shapes in a natural way and these shapes will be recognized, beautified and allow editing as described in LADDER language. The paper shows some related work but it seems there is nothing really alike LADDER to be formally compared; as a complete system is very innovative. Thus its contributions are very important to the field of sketch recognition, introducing the need of higher level languages to quickly generate sketch based interfaces and to reach a wider audience when it comes to the development of such interfaces.LADDER does not intend to be a universal sketch recognizer builder; it is focused in diagram-like sketch interfaces with a fixed graphical grammar. A Shape in LADDER is defined by its components, constraints, aliases, editing behaviors and display methods. There are many features in LADDER that allow easy description of these attributes and methods: Hierarchical shape definition, abstract shapes and shape groups. This comes along with useful predefined shapes, constraints and display methods. A predefined shape beautification is also available based on the specified constraints using equation solving an ideal shape can be extracted out of a rough sketch.
(define shape OpenArrow
(description "An arrow with an open head")
(components
(Line shaft)
(Line head1)
(Line head2))
(constraints
(coincident shaft.p1 head1.p1)
(coincident shaft.p1 head2.p1)
(coincident head1.p1 head2.p1)
(equal-length head1 head2)
(acute-meet head1 shaft)
(acute-meet shaft head2))
(aliases
(Point head shaft.p1)
(Point tail shaft.p2))
(editing
( (trigger (click_hold_drag shaft))
(action
(translate this)
(set-cursor DRAG)
(show-handle MOVE tail head)))
( (trigger (click_hold_drag head))
(action
(rubber-band this head tail)
(show-handle MOVE head)
(set-cursor DRAG)))
( (trigger (click_hold_drag tail))
(action
(rubber-band this tail head)
(show-handle MOVE tail)
(set-cursor DRAG))))
(display (original-strokes)))
No comments:
Post a Comment