Composer中无统一坐标系规则:零件运动用世界坐标(mm),Canvas绘图用左上原点像素坐标,标签锚点分视口/模型两种,动画关键帧仅存XYZ数值;世界坐标系是零件移动和枢轴定位的唯一基准,不可切换、不可缩放、不随相机变化。

Composer 里没有统一的、可配置的“坐标系规则”——你看到的坐标行为,完全取决于当前操作对象类型和所处上下文:零件运动用世界坐标(mm),Canvas 绘图用左上原点像素坐标,标签锚点分视口/模型两种坐标系,而动画关键帧只存 XYZ 数值,不绑定任何坐标系语义。
世界坐标系(XYZ)是零件移动和枢轴定位的唯一基准
所有零件平移、旋转、Move 行为、枢轴位置(Pivot X/Y/Z)都基于这个三维世界坐标系,单位默认为 mm,原点在装配体中心(或导入时 CAD 定义的原点)。它不可切换、不可缩放、不随相机变化。
- 输入 Pivot 值必须带单位意识:写
500是 500mm,不是像素也不是英寸;若原始 CAD 是米制,却按-500设飞入起点,实际飞了半米,极易误判为“不动” - Move 行为的起点/终点坐标必须手动输入,且必须与世界坐标对齐——拖拽时若未开启几何吸附,坐标会带
0.0003级浮点偏移,导致循环路径首尾无法严丝合缝 - 父子链接(Link Type = Pivot)的运动传递,依赖子件枢轴与父件局部坐标系原点的重合度;二者偏差哪怕
0.1mm,多级连杆动画就会累积漂移
Canvas 坐标系(左上原点)仅用于 DrawScope 绘图,与零件无关
这是 Jetpack Compose 的 UI 层坐标系,和 SOLIDWORKS Composer 没有任何关系。如果你在自定义 Compose UI 中画动画(比如叠加状态指示器),DrawScope 的 (0f, 0f) 在左上角,x 向右增,y 向下增,单位是逻辑像素。它不参与任何 3D 零件定位。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
graphicsLayer { translationX / translationY }移动的是 UI 元素,不是模型零件;别指望它让电池盖沿斜面滑动 - 想把 Canvas 动画和零件位置联动?必须手动把世界坐标(mm)转成屏幕坐标(px):需通过
Camera投影矩阵 + 视口尺寸计算,Compose 本身不提供worldToScreen()这类 API - 用
drawLine()手动画参考线时,坐标是像素值;若误用零件的世界坐标(如drawLine(0f, 0f, 100f, 0f)),线会缩在左上角一个点里,因为 100mm ≈ 378px,但没考虑缩放和偏移
标签锚点坐标系决定它“跟不跟零件走”
标签(Label)有两种锚定模式:Viewport(固定在屏幕某像素位置)和 Model(绑定到零件表面,随其变换)。选错就等于选错坐标系,直接导致“飘走”“穿模”“爆炸后消失”。
- 设为
Viewport锚点时,标签坐标是相对视口左上角的像素偏移(如Offset(20f, 100f)),旋转相机它不动,剖切它也不隐藏 - 设为
Model锚点后,Offset值变成相对于该零件局部坐标系的 mm 偏移;若零件被缩放或镜像,相同Offset值对应的空间位置会变,必须重新校准 - 即使设了
Model锚点,若时间轴上没给该标签打Transform关键帧,它在动画中仍不会响应零件位移——关键帧类型和锚点类型必须匹配
真正卡精度的从来不是“哪个坐标系更高级”,而是你在哪一层操作、用了什么数据源、有没有意识到单位混用和浮点误差。世界坐标的 0.001mm 偏差,在高速飞入动画里会被放大成视觉跳变;Canvas 里的 1px 计算误差,在高 DPI 屏上可能就是半毫米错位。这些细节不写进文档,但每一步都在决定动画是否“看起来专业”。

















