ARTICLE · 1010741
[化学]晶体结构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种显示模式,验证结果:
全部通过,模块加载与全部交互无致命错误。
打开方式不变:浏览器直接打开HTML文件即可使用,无需安装任何依赖。