夜雨聆风学习资料网

ARTICLE · 1010741

[化学]晶体结构3D查看器 · 更新说明

[化学]晶体结构3D查看器 · 更新说明

更新日期:2026-09-14

本次更新在原查看器(单胞 / 多胞 / 原胞、连线、坐标轴、半径调整、单击换离子、双击看分数坐标)基础上,新增两项实用功能,并对顶部操作提示做了相应更新。

一、新增「参数」按钮:一键显示 / 隐藏晶胞参数

解决什么问题

此前晶胞参数(a、b、c、α、β、γ)始终显示在顶部信息栏。当窗口较窄或晶胞模型较大时,参数信息会占用空间,对3D视图造成一定遮挡。部分用户希望可以根据需要随时收起参数。

怎么用

工具栏「坐标轴」按钮右侧新增了「参数」按钮。

  • 默认状态为显示,顶部信息栏会展示完整的晶胞参数。

  • 点击按钮可切换为隐藏,此时信息栏只保留晶体名称、格子名称以及所选粒子的分数坐标。

  • 再次点击恢复显示。

按钮自身带有高亮状态,当前是否显示一目了然。

二、新增「最近等距原子」功能:右键单击原子即可高亮

解决什么问题

在晶体化学教学中,“最近相邻原子”和“配位数”是核心概念。此前用户只能靠想象来判断某个原子周围哪些原子距离最近、距离是多少、共有几个。本次更新增加了直观的可视化高亮功能。

怎么用

在3D视图上右键单击任意一个原子,光标处会弹出菜单,包含两项:

  • 最近等距同种:高亮与该原子种类相同、且距离最近并等距的那一层原子。

  • 最近等距异种:高亮与该原子种类不同、且距离最近并等距的那一层原子。

选择后立即高亮;再次选择同一项则取消高亮。左键单击空白处、切换晶格类型、切换显示模式或互换离子时,高亮自动清除。

高亮效果

  • 中心原子:叠加一个白色线框球作为标记。

  • 晶胞内的最近邻原子:叠加洋红色实心球,覆盖原原子形成高亮。

  • 晶胞外的最近邻原子:用洋红色线框球表示其位置,并从中心原子引出一条洋红虚线连接到该位置。

这个设计的意义在于:当被点击的原子位于顶角、棱心或面心等晶胞边界位置时,它的最近邻原子实际上有一部分在相邻晶胞中。虚线补充显示让配位关系完整呈现,不再因晶胞边界而“缺斤少两”。

一个例子:NaCl顶角的Na⁺

点击NaCl晶胞中位于顶角的Na⁺,选择“最近等距异种”:

  • 晶胞内有3个Cl⁻(实心高亮)

  • 晶胞外有3个Cl⁻(线框 + 虚线补出)

  • 配位数为6

这正好对应了NaCl中Na⁺的八面体配位环境。

边界情况处理

  • 单质晶体(只有一种元素):「最近等距异种」按钮自动置灰禁用。

  • 原胞模式下不启用该菜单(原胞坐标与常规晶胞坐标不一致,避免给出错误结果)。

三、顶部操作提示已更新

左键=旋转 右键=平移 滚轮=缩放 右键原子=最近等距原子菜单单击离子=互换两种离子 双击粒子=查看分数坐标

四、技术要点

  • 「参数」按钮的状态由 showParams 变量控制,点击时切换并同步更新信息栏与按钮高亮。

  • 最近邻计算以被点原子的局部坐标为基准,在 di, dj, dk ∈ [-2, n+2] 的整数平移范围内生成候选原子位置,按类别(同种 / 异种)过滤后取最小距离,容差 tol = max(1e-3, dmin×1e-3),收集等距壳层。

  • 晶胞外的最近邻原子通过分数坐标判断:落在当前显示块 [0, n]³ 内则实心高亮,块外则线框 + 虚线补出。

  • 高亮作为模型的子组随模型一起重建,切换半径、连线、坐标轴等显示选项不会丢失高亮。

五、验证情况

使用 Node mock 回归脚本模拟 THREE / DOM,覆盖14种格子 × 3种显示模式,验证结果:

测试项
结果
CsCl顶角·异种壳层:晶胞外线框球7+中心标记1=8,虚线7
CsCl顶角·同种壳层:实心3,线框3+中心1=4,虚线3
NaCl顶角·异种壳层:实心3,线框3+中心1=4,虚线3
参数按钮 显示/隐藏:true/false

全部通过,模块加载与全部交互无致命错误。

打开方式不变:浏览器直接打开HTML文件即可使用,无需安装任何依赖。

相关学习资料

返回首页浏览学习资料