Language agnostic 您会选择哪种语言来创建矢量绘图界面?

Language agnostic 您会选择哪种语言来创建矢量绘图界面?,language-agnostic,desktop-application,vector-graphics,Language Agnostic,Desktop Application,Vector Graphics,我有一个桌面应用程序项目,其中涉及一个绘图组件。尚未选择基础语言 图纸所需的操作如下: 点并单击以绘制杆和曲线 要添加的形状库 选择零部件并编辑其特性(厚度、长度、元数据) 我所能想到的就是SVG+Javascript,因为我以前一直在为web工作。我希望有更广阔的视角,更多的选择 请不要争论哪种语言在理论上是最好的。相反,要讲一个故事:你用了哪一个,做了什么样的项目,什么对你来说是容易的还是困难的 谢谢分享您的经验:)当然有。这听起来像一个笑话,事实上,我起初认为这是一个笑话,但你可能会发

我有一个桌面应用程序项目,其中涉及一个绘图组件。尚未选择基础语言

图纸所需的操作如下:

  • 点并单击以绘制杆和曲线
  • 要添加的形状库
  • 选择零部件并编辑其特性(厚度、长度、元数据)
我所能想到的就是SVG+Javascript,因为我以前一直在为web工作。我希望有更广阔的视角,更多的选择

请不要争论哪种语言在理论上是最好的。相反,要讲一个故事:你用了哪一个,做了什么样的项目,什么对你来说是容易的还是困难的


谢谢分享您的经验:)

当然有。这听起来像一个笑话,事实上,我起初认为这是一个笑话,但你可能会发现它的一些用处。

都是关于图形的东西,包括向量。

鉴于要求,我只会使用一种语言:Tcl。Tk小部件库有一个优秀的画布小部件,它是基于向量的,非常易于使用。它是基于事件的,因此在UI编程方面感觉非常类似于javascript

以下是点击式直线绘制的代码:

set currentObject ""

set line {
  set ::currentObject [.c create line %x %y %x %y]

  bind . <Motion> {
    .c coords $currentObject [list %x %y %%x %%y]
  }
}
首先,创建画布很简单:

canvas .c
pack .c
现在,为点按式直线绘制编码:

set currentObject ""

set line {
  set ::currentObject [.c create line %x %y %x %y]

  bind . <Motion> {
    .c coords $currentObject [list %x %y %%x %%y]
  }
}
设置当前对象“”
设定线{
set::currentObject[.c创建行%x%y%x%y]
绑定{
.c coords$currentObject[列表%x%y%%x%%y]
}
}
现在将线条绘制代码绑定到mousedown事件:

bind . <ButtonPress-1> $line
bind$线
也不要忘记处理mouseup事件:

bind . <ButtonRelease-1> {
  bind . <Motion> {}
}
bind。{
绑定{}
}

这只是十几行代码。这也是我经常求助于Tcl的另一个原因:它可以让你用很少的代码做很多事情。

你是在问这个应用程序应该用哪种语言编写,还是应该让用户以交互方式使用哪种语言?您的应用程序适用于哪个桌面环境?问题是要选择哪种语言编写应用程序。虽然我不想在我的应用程序中“嵌入InkScape”,但我害怕重新发明轮子。我想重用可重用的东西,这样用户就可以有一个简单的绘图界面。如果我有InkScape的备件,我会扔掉大部分零件,保留我感兴趣的零件,开发那些丢失的零件。我一直在Qt/WPF附近潜行进行应用程序设计,但我想知道我是否应该嵌入另一种语言或API来完成绘图部分。我们最终选择了一种基于OpenGL构建的跨平台引擎。虽然我不太了解我所做的事情,但我在下载了一些东西,启动了它,执行了上面的代码,现在我可以画线了。太神奇了。