首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Morph中的Morph和Cocoa中的NSView有什么不同?

Morph中的Morph和Cocoa中的NSView有什么不同?
EN

Stack Overflow用户
提问于 2010-11-01 23:44:44
回答 3查看 833关注 0票数 9

我想知道Morphic有什么特别之处。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-02 13:47:39

Morphic比NSView或任何其他允许重新实现有限功能集的图形类要多得多。Morphic是一个极具延展性的UI构建工具包。Morphic背后的一些设计思想清楚地表明了这一意图:

  • 包含了2D坐标系的全面层次结构。它们并不局限于笛卡尔或线性。有用的非线性坐标系统包括极坐标、对数坐标、双曲线坐标和地理坐标(类似地图) projections.
  • Separation,用于处理变形本身的坐标系统。变形应该只需要选择它的首选坐标系,而不是需要自己将它绘制的每个点转换为世界坐标。它的#drawOn:方法及其子变形的位置用它自己的坐标system.
  • Complete表示,独立于显示属性,如大小或分辨率。没有像素的概念。GUI被认为是更高层次的。所有的GUI都独立于像素分辨率。所有的渲染都是反aliased.
  • Separating的坐标系简化了变形的移动、缩放和旋转。
  • 所有坐标都是浮点数。这对于允许完全任意的缩放而没有明显的舍入误差是很好的。
  • 变形层次不是形状的层次。变形没有边框或颜色的概念。亚形对齐没有通用的概念。特定的变形可以以任何有意义的方式实现这些,因为itself.
  • Morphic事件处理是灵活的,并且允许您向任意对象发送事件。该对象不需要子类。
票数 7
EN

Stack Overflow用户

发布于 2010-12-10 23:09:40

警告:Smalltalk的活动动态环境是 。静态的、冻结的语言对你来说永远不会一样;-)

简而言之: Morphic是一个虚拟世界,在这里你可以直接探索生活对象(就像现实世界一样)。你有没有看过UI和...

  • 想知道“哇,这真的很酷!他们是怎么做的?”

说:“我希望他们做的是X!”

虽然这些想法在任何其他环境中都会导致痛苦和沮丧,但在Morphic中并非如此。

如果你想让自己大吃一惊,那就去当个神明吧:

  1. 启动一个Pharo图像,并单击背景(实际上是“世界”)以打开世界菜单:

  1. 在其中一个菜单选项(按住shift+alt的同时单击我的Mac)上调出“光环”:

  1. 将“拾起”光环(中上角)拖放到世界上的某个地方:

  1. 享受您的菜单项,现在您可以随时随地使用它:

说真的,点击它,看着浏览器打开!!

有没有一个你经常使用的选项,供应商已经隐藏了三个菜单级别的深度?这会有用吗?!这是一个像Morphic这样的实时直接GUI环境的强大之处的一瞥。

如果你感兴趣,请阅读John Maloney & Randall Smith的论文Directness and Liveness in the Morphic User Interface Construction Environment

票数 6
EN

Stack Overflow用户

发布于 2019-10-24 10:21:07

标题没有映射你的问题,所以我回答你的问题,而不是标题。

在过去的两天里,我已经阅读了有关Morphic的文章,并总结了我认为morphic的特别之处。

Morphic非常适合live coding。这是一个直接的映射,当代码发生变化时,屏幕上的输出也会发生变化。和/或如果屏幕上的变形被更改(拖动),代码中的值也会更改。这在艺术表演中很酷!

但Morphic的目标是更高的抽象性。变形的属性是从代码中抽象出来的。对文件执行SoC或对服务器端数据库执行fetch

我认为WebStorage和JavaScript文件是存储交互更改变形属性的活动状态的一个很好的选择。你看-编程是通过每一个变形来完成的。然后,代码只需要处理来自单击和拖动的事件。

research的目标甚至抽象化了代码。编码可以通过变形来定义单击或拖动时发生的事情。在Scratch中,变形可以是拼图碎片。

程序必须备份到某个文件中。我不认为在云上进行编码是安全的。因此,JS文件是唯一的选择(如果不设置服务器是一个选项),因为本地不允许数据文件,甚至不允许在与web应用程序相同的文件夹中。同源策略意味着相同的服务器,而不是相同的文件夹。

当应用程序启动时,Javascript文件(或Web Storage放在首位)将设置变形的世界。用户与那个世界进行交互。新状态可以存储在WebStorage中,并通过下载进行备份。

您可以使用Lively Kernel作为文件中的语言,或者将变形数据存储在对象中,或者将您发现最简单的任何内容作为文件生成以供下载。

那么这有什么特别之处呢?我不会重复公认的答案,但这是我的结论:

  • 你在morphs屏幕上看到的一切都是一个变形。
  • 变形树被称为一个世界。
  • 将每个变形的坐标、尺寸和属性从代码中抽象到树中。
  • 这项研究的目标也是将代码抽象出来。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4070444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档