通过直接操作的半自动SVG编程
Semi-Automated SVG Programming via Direct Manipulation
摘要:
直接操作界面为广泛的用户提供了直观和交互式的功能,但它们通常表现出两个局限性:内置功能不可能覆盖所有用例,并且内容的内部表示不容易暴露。我们相信,如果直接操作界面(a)使用通用程序作为表示格式,(b)将这些程序暴露给用户,那么专家可以以强大的新方式定制这些系统,非专家可以享受可编程系统的一些好处。在最近的工作中,我们提出了一个名为Sketch-n-Sketch的原型SVG编辑器,为实现这一愿景迈出了一步。在该系统中,用户在通用的微积分中编写程序以生成图形设计,然后可以直接操纵输出以在操纵期间实时地间接改变程序中的设计参数(即常量文字)。不幸的是,编程所需关系的负担完全落在用户身上。在本文中,我们设计并实现了新的功能Sketch-n-Sketch,协助编程过程本身。像典型的直接操作系统一样,我们的扩展Sketch-n-Sketch现在提供了基于GUI的工具,用于绘制形状,将形状相互关联以及将形状分组在一起。然而,与典型的系统不同,每个工具都通过转换其通用程序来实现用户的意图。这种新颖的半自动化编程工作流程允许用户在程序中快速创建高级别的可重用抽象,同时保留直接操作功能。在未来的工作中,我们的方法可能会扩展更多的图形设计功能或实现其他应用领域。
英文摘要:
Direct manipulation interfaces provide intuitive and interactive features to a broad range of users, but they often exhibit two limitations: the built-in features cannot possibly cover all use cases, and the internal representation of the content is not readily exposed. We believe that if direct manipulation interfaces were to (a) use general-purpose programs as the representation format, and (b) expose those programs to the user, then experts could customize these systems in powerful new ways and non-experts could enjoy some of the benefits of programmable systems. In recent work, we presented a prototype SVG editor called Sketch-n-Sketch that offered a step towards this vision. In that system, the user wrote a program in a general-purpose lambda-calculus to generate a graphic design and could then directly manipulate the output to indirectly change design parameters (i.e. constant literals) in the program in real-time during the manipulation. Unfortunately, the burden of programming the desired relationships rested entirely on the user. In this paper, we design and implement new features for Sketch-n-Sketch that assist in the programming process itself. Like typical direct manipulation systems, our extended Sketch-n-Sketch now provides GUI-based tools for drawing shapes, relating shapes to each other, and grouping shapes together. Unlike typical systems, however, each tool carries out the user's intention by transforming their general-purpose program. This novel, semi-automated programming workflow allows the user to rapidly create high-level, reusable abstractions in the program while at the same time retaining direct manipulation capabilities. In future work, our approach may be extended with more graphic design features or realized for other application domains.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。