如何以窗口形式表示化学反应?我正在使用 c# 语言。可以使用 来表示数学公式mimetxt.dll
,但是化学反应呢?
简而言之,我想以适当的格式表示获胜表格和复杂表格,例如:2H2 + O2 = 2H2O
我怎样才能做到这一点?
这不是那种很可能得到很好答案的简单问题。
在化学领域工作的人可能知道可用于绘制此类图表的辅助库。但是您需要希望存在具有该专业知识的人并注意到您的问题。或者,您将不得不自己编写所有代码,并且鉴于您想要表示任意复杂的图表,这是一项不平凡的任务。
我建议尝试寻找用于绘制图表的商业软件,并询问这些公司是否可以绘制你需要的东西。像 Dundas 和 SoftwareFX 这样的公司值得首先尝试。还可以尝试查看化学工业中使用的商业应用程序,看看是否有其他人绘制这些东西,看看你是否可以问他们是如何做到的。
试试 MolEngine ( http://www.scilligence.com/web/molengine.aspx )。如果您尝试构建 Web 应用程序,这里是示例代码:(http://www.scilligence.com/web/a-simple-structure-search-implementation-with-jsdraw-and-molengine.aspx)
我们有一个名为 Chem4Word 的开源应用程序。我们通过 WPF 用户控件以窗口形式显示结构。
如果您查看我们位于https://github.com/Chem4Word/Version3的 GitHub 存储库,您会发现我们用于初始测试的 Windows 窗体应用程序,它可以显示来自 molfile 的结构。打开主要的 Chem4Word 解决方案,有一个应用程序所在的测试工具文件夹,将其设置为启动项目以使用它。
有一些商业产品可以满足您的要求。但是,如果您像大多数化学家一样正在寻找开源解决方案,这里有一些基于我自己经验的建议。
由于您使用的是 .NET,因此来自 GGA 软件的 Indigo 工具包是一个不错的选择。http://www.ggasoftware.com/opensource/indigo 它有一个非常易于阅读的 API 文档和大量示例。Indigo 的渲染模块可以以非常好的质量渲染各种文件格式(SMILES、mol、sdf、rdf、rxn 等)的分子和反应图片。我相信它可以满足您对渲染化学反应的大部分要求。
我自己使用 OpenBabel 已经有一段时间了。它也是一个很好的化学信息学开发工具。它是用 C++ 编写的,并且也有一个 .NET 绑定。NET 版本的库中不包含一些高级功能,但我很确定包含渲染模块。图片的质量与 Indigo 一样好,但 API 文档对用户不太友好。此外,您需要安装整个软件包才能使用它。如果您正在使用 ASP.NET 开发 Webform 应用程序,则在访问服务器端的本地代码时可能会遇到授权问题。我不得不说,这是一个痛苦的*。
还有 Chemaxon 软件也可以为您完成渲染工作。它是商业软件,但一些基本功能,如渲染反应是免费的。它基于 Java,但具有 NET 绑定。API 文档没问题。当然,你需要在你的电脑上安装java。