diff --git a/src/viewer_tpl.html b/src/viewer_tpl.html index 449c8ff..61bb2d9 100644 --- a/src/viewer_tpl.html +++ b/src/viewer_tpl.html @@ -97,10 +97,11 @@ small{color:var(--dim)} .hudlink{pointer-events:auto;cursor:pointer;color:var(--ac);text-decoration:underline;margin-left:8px} @media (max-width:760px){#bomTab{top:auto;bottom:36px}#bomDock{top:46px;bottom:26px}} -/* ===================== IK 控制条(新增) ===================== */ -#ikbar{grid-column:1/-1;display:flex;align-items:center;gap:6px;padding:0 10px;height:40px; - background:linear-gradient(180deg,#1c212b,#161922);border-bottom:1px solid var(--line); - overflow-x:auto;overflow-y:hidden;white-space:nowrap;flex-wrap:nowrap} +/* ===================== IK 控制条(两行:目标+姿态 / 模式+状态) ===================== */ +#ikbar{grid-column:1/-1;display:flex;flex-direction:column;gap:4px;padding:5px 10px; + background:linear-gradient(180deg,#1c212b,#161922);border-bottom:1px solid var(--line)} +#ikbar .ikrow{display:flex;align-items:center;gap:6px;min-height:26px; + overflow-x:auto;overflow-y:hidden;white-space:nowrap} #ikbar .ik-t{color:var(--ac);font-weight:700;letter-spacing:.8px;flex:none;font-size:11.5px; border:1px solid var(--ac);border-radius:4px;padding:1px 6px} #ikbar .lb{color:var(--dim);flex:none;font-size:12px} @@ -114,6 +115,9 @@ small{color:var(--dim)} #ikbar .good{color:var(--ok)} #ikbar .bad{color:#ff6b6b} #ikbar .hi{color:var(--warn)} #ikSolve{background:#1d3f74;border-color:var(--ac);color:#fff;font-weight:600} #ikSolve:hover{background:#24508f} +#ikPose.on{background:#3a2b63;border-color:#a06bff;color:#fff;font-weight:600} +#ikPoseBox{display:none;align-items:center;gap:6px} +#ikPoseBox input[type=number]{width:54px} /* ===================== IK 结果面板(左栏顶部) ===================== */ #ikpanel{margin:0 0 10px;border:1px solid var(--line);border-radius:6px;background:#141821;padding:7px 8px} @@ -178,9 +182,9 @@ body.motion #treeBlock{display:none!important} #left{grid-row:3} #stage{grid-row:3} #app>footer{grid-row:4} -/* BOM 抽屉:运动模拟多一条 IK 控制条,需整体下移 40px */ +/* BOM 抽屉:运动模拟多一条两行 IK 控制条(实测 75px),需整体下移 */ #bomDock{top:46px} #bomTab{top:64px} -body.motion #bomDock{top:86px} body.motion #bomTab{top:100px} +body.motion #bomDock{top:124px} body.motion #bomTab{top:140px} @media (max-width:760px){ #bomTab,body.motion #bomTab{top:auto;bottom:36px} #bomDock,body.motion #bomDock{top:86px;bottom:26px} @@ -212,6 +216,7 @@ body.motion #bomDock{top:86px} body.motion #bomTab{top:100px}
+
IK 目标点 X Y @@ -228,22 +233,33 @@ body.motion #bomDock{top:86px} body.motion #bomTab{top:100px} - + + + + 方位 + 仰角 + 滚转 + + + +
+
- 拖动黄球 = 移动目标(Shift 约束竖直);松手自动求解 + 拖黄球 = 移动目标(Shift 仅上下);拖箭头 = 调工具轴指向;拖箭杆或粉球 = 滚转;松手自动求解 —
+