Motion Trace: a point's path as a joint is driven or a study plays, kept as a 3D spline (#1529)

Thanks @SychPL.
This commit is contained in:
Mateusz Sych authored and GitHub committed 2026-10-16 01:54:34 -04:00
1 parent dcffab09b1
commit 571122c4ba
19 files changed
+769 -9

No files matched your search

+8
View File
@@ -1293,6 +1293,14 @@ pub(crate) fn paint_with(p: &Painter, r: Rect, name: &str, ink: Color32, fill: C
pen.arc(12.0, 12.0, 8.5, 0.3, 4.6, a);
pen.arrow((11.0, 20.4), (14.5, 20.3), a);
}
// A crank on its pivot and the closed path its far end draws (accent).
"trace" => {
pen.curve([(15.0, 13.0), (22.0, 13.0), (23.0, 3.0), (15.0, 3.0)], a);
pen.curve([(15.0, 3.0), (8.0, 3.0), (9.0, 13.0), (15.0, 13.0)], a);
pen.line(&[(5.0, 20.0), (15.0, 13.0)], ink);
pen.circle(5.0, 20.0, 2.4, pen.fill, ink);
pen.dot(15.0, 13.0, a);
}
"motion_link" => {
pen.circle(7.0, 14.0, 4.5, pen.fill, ink);
pen.circle(17.5, 9.0, 3.0, pen.fill, ink);
+5
View File
@@ -228,6 +228,8 @@
"cmd.motion_list": "Bewegungsuntersuchungen auflisten",
"cmd.motion_play": "Bewegungsuntersuchung abspielen",
"cmd.motion_study": "Bewegungsuntersuchung",
"cmd.motion_trace": "Bewegungsbahn",
"cmd.motion_trace_keep": "Bewegungsbahn behalten",
"cmd.occurrence_copy": "Einfügen (Instanz)",
"cmd.occurrence_ground": "Festsetzen",
"cmd.occurrence_move": "Instanz verschieben",
@@ -549,6 +551,9 @@
"toolbar.image": "BILD",
"toolbar.render": "RENDERN",
"toolbar.render_scene": "SZENE",
"trace.points": "{count} Punkte entlang der Bahn",
"trace.stopped_by_contact": "Endet bei Probe {sample}: {a} würde {b} durchdringen",
"trace.stopped_by_loop": "Endet bei Probe {sample}: die Schleife über {joint} lässt sich nicht weiter schließen",
"ui.1_degree_of_freedom": "1 Freiheitsgrad",
"ui.3d_sketch": "3D-Skizze",
"ui.about": "Über",
+5
View File
@@ -429,6 +429,8 @@
"cmd.motion_list": "List Motion Studies",
"cmd.motion_play": "Play Motion Study",
"cmd.motion_study": "Motion Study",
"cmd.motion_trace": "Motion Trace",
"cmd.motion_trace_keep": "Keep Motion Trace",
"cmd.occurrence_copy": "Paste (Instance)",
"cmd.occurrence_ground": "Ground",
"cmd.occurrence_move": "Move Occurrence",
@@ -766,6 +768,9 @@
"toolbar.image": "IMAGE",
"toolbar.render": "RENDER",
"toolbar.render_scene": "SCENE",
"trace.points": "{count} points along the path",
"trace.stopped_by_contact": "Ends at sample {sample}: {a} would pass through {b}",
"trace.stopped_by_loop": "Ends at sample {sample}: the loop through {joint} can't close any further",
"ui.1_degree_of_freedom": "1 degree of freedom",
"ui.3d_mouse_speed": "3D mouse speed",
"ui.3d_mouse_windows": "3D mouse",
+5
View File
@@ -409,6 +409,8 @@
"cmd.motion_list": "Lister les études de mouvement",
"cmd.motion_play": "Lire l'étude de mouvement",
"cmd.motion_study": "Étude de mouvement",
"cmd.motion_trace": "Trajectoire de mouvement",
"cmd.motion_trace_keep": "Conserver la trajectoire de mouvement",
"cmd.occurrence_copy": "Coller (instance)",
"cmd.occurrence_ground": "Fixer",
"cmd.occurrence_move": "Déplacer l'occurrence",
@@ -746,6 +748,9 @@
"toolbar.image": "IMAGE",
"toolbar.render": "RENDU",
"toolbar.render_scene": "SCÈNE",
"trace.points": "{count} points le long de la trajectoire",
"trace.stopped_by_contact": "Se termine à l'échantillon {sample} : {a} traverserait {b}",
"trace.stopped_by_loop": "Se termine à l'échantillon {sample} : la boucle passant par {joint} ne peut plus se fermer",
"ui.1_degree_of_freedom": "1 degré de liberté",
"ui.3d_mouse_speed": "Vitesse de la souris 3D",
"ui.3d_mouse_windows": "Souris 3D",
+5
View File
@@ -429,6 +429,8 @@
"cmd.motion_list": "モーション スタディを一覧表示",
"cmd.motion_play": "モーション スタディを再生",
"cmd.motion_study": "モーション スタディ",
"cmd.motion_trace": "モーション トレース",
"cmd.motion_trace_keep": "モーション トレースを保持",
"cmd.occurrence_copy": "貼り付け(インスタンス)",
"cmd.occurrence_ground": "空間固定",
"cmd.occurrence_move": "オカレンスを移動",
@@ -766,6 +768,9 @@
"toolbar.image": "画像",
"toolbar.render": "レンダリング",
"toolbar.render_scene": "シーン",
"trace.points": "経路上の {count} 点",
"trace.stopped_by_contact": "サンプル {sample} で終了: {a} が {b} を通り抜けてしまいます",
"trace.stopped_by_loop": "サンプル {sample} で終了: {joint} を通るループはこれ以上閉じられません",
"ui.1_degree_of_freedom": "自由度 1",
"ui.3d_mouse_speed": "3D マウス速度",
"ui.3d_mouse_windows": "3D マウス",
+5
View File
@@ -228,6 +228,8 @@
"cmd.motion_list": "운동 연구 목록",
"cmd.motion_play": "운동 연구 재생",
"cmd.motion_study": "운동 연구",
"cmd.motion_trace": "모션 궤적",
"cmd.motion_trace_keep": "모션 궤적 유지",
"cmd.occurrence_copy": "붙여넣기(인스턴스)",
"cmd.occurrence_ground": "고정",
"cmd.occurrence_move": "인스턴스 이동",
@@ -549,6 +551,9 @@
"toolbar.image": "이미지",
"toolbar.render": "렌더링",
"toolbar.render_scene": "장면",
"trace.points": "경로를 따라 {count}개 점",
"trace.stopped_by_contact": "샘플 {sample}에서 끝남: {a}이(가) {b}을(를) 통과합니다",
"trace.stopped_by_loop": "샘플 {sample}에서 끝남: {joint}을(를) 지나는 루프를 더 이상 닫을 수 없습니다",
"ui.1_degree_of_freedom": "자유도 1개",
"ui.3d_sketch": "3D 스케치",
"ui.about": "정보",
+5
View File
@@ -381,6 +381,8 @@
"cmd.motion_list": "Список исследований движения",
"cmd.motion_play": "Воспроизвести исследование движения",
"cmd.motion_study": "Исследование движения",
"cmd.motion_trace": "Траектория движения",
"cmd.motion_trace_keep": "Сохранить траекторию движения",
"cmd.occurrence_copy": "Вставить (вхождение)",
"cmd.occurrence_ground": "Закрепить",
"cmd.occurrence_move": "Переместить вхождение",
@@ -705,6 +707,9 @@
"toolbar.image": "ИЗОБРАЖЕНИЕ",
"toolbar.render": "РЕНДЕРИНГ",
"toolbar.render_scene": "СЦЕНА",
"trace.points": "{count} точек на траектории",
"trace.stopped_by_contact": "Заканчивается на отсчёте {sample}: {a} прошёл бы сквозь {b}",
"trace.stopped_by_loop": "Заканчивается на отсчёте {sample}: контур через {joint} дальше не замыкается",
"ui.1_degree_of_freedom": "1 степень свободы",
"ui.3d_mouse_speed": "Скорость 3D-мыши",
"ui.3d_mouse_windows": "3D-мышь",
+5
View File
@@ -386,6 +386,8 @@
"cmd.motion_list": "Список досліджень руху",
"cmd.motion_play": "Відтворити дослідження руху",
"cmd.motion_study": "Дослідження руху",
"cmd.motion_trace": "Траєкторія руху",
"cmd.motion_trace_keep": "Зберегти траєкторію руху",
"cmd.occurrence_copy": "Вставити (екземпляр)",
"cmd.occurrence_ground": "Закріпити",
"cmd.occurrence_move": "Перемістити екземпляр",
@@ -634,6 +636,9 @@
"timeline.reorder_many": "Перевпорядкувати операції",
"timeline.ungroup": "Прибрати теки операцій",
"to the next face": "до наступної грані",
"trace.points": "{count} точок на траєкторії",
"trace.stopped_by_contact": "Закінчується на відліку {sample}: {a} пройшов би крізь {b}",
"trace.stopped_by_loop": "Закінчується на відліку {sample}: контур через {joint} далі не замикається",
"ui.1_degree_of_freedom": "1 ступінь вільності",
"ui.3d_mouse_speed": "Швидкість 3D-миші",
"ui.3d_mouse_windows": "3D-миша",
+5
View File
@@ -429,6 +429,8 @@
"cmd.motion_list": "列出运动研究",
"cmd.motion_play": "播放运动研究",
"cmd.motion_study": "运动研究",
"cmd.motion_trace": "运动轨迹",
"cmd.motion_trace_keep": "保留运动轨迹",
"cmd.occurrence_copy": "粘贴(实例)",
"cmd.occurrence_ground": "固定",
"cmd.occurrence_move": "移动实例",
@@ -766,6 +768,9 @@
"toolbar.image": "图像",
"toolbar.render": "渲染",
"toolbar.render_scene": "场景",
"trace.points": "路径上的 {count} 个点",
"trace.stopped_by_contact": "在采样 {sample} 处结束:{a} 会穿过 {b}",
"trace.stopped_by_loop": "在采样 {sample} 处结束:经过 {joint} 的环路无法再闭合",
"ui.1_degree_of_freedom": "1 个自由度",
"ui.3d_mouse_speed": "3D 鼠标速度",
"ui.3d_mouse_windows": "3D 鼠标",