@mathwiz/ui-components 0.1.28 → 0.1.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/README.md +1 -1
  2. package/dist/components/Button/Button.css +100 -32
  3. package/dist/components/Button/Button.d.ts.map +1 -1
  4. package/dist/components/Button/types.d.ts +19 -0
  5. package/dist/components/Button/types.d.ts.map +1 -1
  6. package/dist/components/HundredChart/HundredChart.css +8 -0
  7. package/dist/components/HundredChart/HundredChart.d.ts.map +1 -1
  8. package/dist/components/HundredChart/HundredChart.types.d.ts +29 -0
  9. package/dist/components/HundredChart/HundredChart.types.d.ts.map +1 -1
  10. package/dist/components/HundredChart/HundredChart.utils.d.ts +13 -1
  11. package/dist/components/HundredChart/HundredChart.utils.d.ts.map +1 -1
  12. package/dist/components/HundredChart/index.d.ts +2 -2
  13. package/dist/components/HundredChart/index.d.ts.map +1 -1
  14. package/dist/components/MathCardV2/DecimalNumberRecognitionSessionStore.d.ts +2 -2
  15. package/dist/components/MathCardV2/DecimalNumberRecognitionSessionStore.d.ts.map +1 -1
  16. package/dist/components/MathCardV2/ExplanationStep.d.ts +9 -0
  17. package/dist/components/MathCardV2/ExplanationStep.d.ts.map +1 -1
  18. package/dist/components/MathCardV2/MathCardV2.css +11 -4
  19. package/dist/components/MathCardV2/MathCardV2.d.ts.map +1 -1
  20. package/dist/components/MathCardV2/MathCardV2.types.d.ts +51 -1
  21. package/dist/components/MathCardV2/MathCardV2.types.d.ts.map +1 -1
  22. package/dist/components/MathCardV2/MathPracticeSessionStore.d.ts +3 -3
  23. package/dist/components/MathCardV2/MathPracticeSessionStore.d.ts.map +1 -1
  24. package/dist/components/MathCardV2/MathPracticeSessionTypes.d.ts +38 -18
  25. package/dist/components/MathCardV2/MathPracticeSessionTypes.d.ts.map +1 -1
  26. package/dist/components/MathCardV2/MathPracticeStoreContext.d.ts +3 -9
  27. package/dist/components/MathCardV2/MathPracticeStoreContext.d.ts.map +1 -1
  28. package/dist/components/MathCardV2/MathPracticeStoreHooks.d.ts +3 -2
  29. package/dist/components/MathCardV2/MathPracticeStoreHooks.d.ts.map +1 -1
  30. package/dist/components/MathCardV2/components/content/OptionGroupContent.d.ts +10 -0
  31. package/dist/components/MathCardV2/components/content/OptionGroupContent.d.ts.map +1 -0
  32. package/dist/components/MathCardV2/components/renderers/ContentRenderer.d.ts.map +1 -1
  33. package/dist/components/MathCardV2/hooks/useDataAdapter.d.ts.map +1 -1
  34. package/dist/components/MathCardV2/hooks/useMeetingProblemAdapter.d.ts.map +1 -1
  35. package/dist/components/MathCardV2/modules/ReviewModule/ReviewModule.d.ts.map +1 -1
  36. package/dist/components/MathCardV2/modules/SolveModule/SolveModule.d.ts.map +1 -1
  37. package/dist/components/MathCardV2/scenes/ExplanationScene/ExplanationScene.d.ts.map +1 -1
  38. package/dist/components/MathCardV2/scenes/QuestionScene/QuestionScene.css +18 -18
  39. package/dist/components/MathCardV2/scenes/QuestionScene/QuestionScene.d.ts.map +1 -1
  40. package/dist/components/MathCardV2/scenes/SuccessScene/SuccessScene.d.ts.map +1 -1
  41. package/dist/components/OptionGroup/OptionCard.d.ts +11 -0
  42. package/dist/components/OptionGroup/OptionCard.d.ts.map +1 -0
  43. package/dist/components/OptionGroup/OptionCard.styles.d.ts +87 -0
  44. package/dist/components/OptionGroup/OptionCard.styles.d.ts.map +1 -0
  45. package/dist/components/OptionGroup/OptionGroup.d.ts +11 -0
  46. package/dist/components/OptionGroup/OptionGroup.d.ts.map +1 -0
  47. package/dist/components/OptionGroup/OptionGroup.types.d.ts +71 -0
  48. package/dist/components/OptionGroup/OptionGroup.types.d.ts.map +1 -0
  49. package/dist/components/OptionGroup/index.d.ts +5 -0
  50. package/dist/components/OptionGroup/index.d.ts.map +1 -0
  51. package/dist/components/StatBlock/StatBlock.css +331 -0
  52. package/dist/components/StatBlock/StatBlock.d.ts +7 -0
  53. package/dist/components/StatBlock/StatBlock.d.ts.map +1 -0
  54. package/dist/components/StatBlock/index.d.ts +5 -0
  55. package/dist/components/StatBlock/index.d.ts.map +1 -0
  56. package/dist/components/StatBlock/types.d.ts +116 -0
  57. package/dist/components/StatBlock/types.d.ts.map +1 -0
  58. package/dist/components/Table/Table.d.ts +14 -0
  59. package/dist/components/Table/Table.d.ts.map +1 -0
  60. package/dist/components/Table/hooks/useTableCore.d.ts +13 -0
  61. package/dist/components/Table/hooks/useTableCore.d.ts.map +1 -0
  62. package/dist/components/Table/hooks/useTableState.d.ts +10 -0
  63. package/dist/components/Table/hooks/useTableState.d.ts.map +1 -0
  64. package/dist/components/Table/index.d.ts +7 -0
  65. package/dist/components/Table/index.d.ts.map +1 -0
  66. package/dist/components/Table/types.d.ts +179 -0
  67. package/dist/components/Table/types.d.ts.map +1 -0
  68. package/dist/components/Table/utils/flattenData.d.ts +15 -0
  69. package/dist/components/Table/utils/flattenData.d.ts.map +1 -0
  70. package/dist/components/Table/utils/mergeClass.d.ts +6 -0
  71. package/dist/components/Table/utils/mergeClass.d.ts.map +1 -0
  72. package/dist/data/GeometryProblemAdapterV4/geometry-types.d.ts +119 -4
  73. package/dist/data/GeometryProblemAdapterV4/geometry-types.d.ts.map +1 -1
  74. package/dist/data/GeometryProblemAdapterV4/jsondata/parallelogram-revised.json +721 -721
  75. package/dist/data/GeometryProblemAdapterV4/jsondata/right-triangle-v4.json +595 -0
  76. package/dist/data/GeometryProblemAdapterV4/jsondata/trapezoid-v4-final.json +469 -469
  77. package/dist/data/GeometryProblemAdapterV4/jsondata/triangle-v4-final.json +3 -3
  78. package/dist/data/GeometryProblemAdapterV4/types.d.ts +2 -0
  79. package/dist/data/GeometryProblemAdapterV4/types.d.ts.map +1 -1
  80. package/dist/data/TriangleAdapterV3/config/embeddedConfigs.d.ts +96 -18
  81. package/dist/data/TriangleAdapterV3/config/embeddedConfigs.d.ts.map +1 -1
  82. package/dist/data/TriangleAdapterV3/config/index.d.ts +64 -12
  83. package/dist/data/TriangleAdapterV3/config/index.d.ts.map +1 -1
  84. package/dist/data/TriangleAdapterV3/core/syncAdapter.d.ts +5 -0
  85. package/dist/data/TriangleAdapterV3/core/syncAdapter.d.ts.map +1 -1
  86. package/dist/data/TriangleAdapterV3/resolvers/transformRefResolver.d.ts +4 -0
  87. package/dist/data/TriangleAdapterV3/resolvers/transformRefResolver.d.ts.map +1 -1
  88. package/dist/data/TriangleAdapterV3/transformers/geometryTransformTransformer.d.ts.map +1 -1
  89. package/dist/data/TriangleAdapterV3/transformers/hundredChartTransformer.d.ts +58 -0
  90. package/dist/data/TriangleAdapterV3/transformers/hundredChartTransformer.d.ts.map +1 -0
  91. package/dist/data/TriangleAdapterV3/transformers/index.d.ts +2 -0
  92. package/dist/data/TriangleAdapterV3/transformers/index.d.ts.map +1 -1
  93. package/dist/data/TriangleAdapterV3/transformers/optionGroupTransformer.d.ts +29 -0
  94. package/dist/data/TriangleAdapterV3/transformers/optionGroupTransformer.d.ts.map +1 -0
  95. package/dist/data/TriangleAdapterV3/types.d.ts +3 -0
  96. package/dist/data/TriangleAdapterV3/types.d.ts.map +1 -1
  97. package/dist/data/config/style-presets.json +27 -3
  98. package/dist/data/dataSchema/OpenAPI/openapi.json +5777 -5777
  99. package/dist/data/problems/factorProblemV4-backup.json +427 -0
  100. package/dist/data/problems/factorProblemV4.json +462 -0
  101. package/dist/data/problems/factorProblemV4_backup_20260311.json +436 -0
  102. package/dist/index.cjs +103 -100
  103. package/dist/index.cjs.map +1 -1
  104. package/dist/index.d.ts +8 -2
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.mjs +12144 -6014
  107. package/dist/index.mjs.map +1 -1
  108. package/dist/mathwiz-ui.css +1 -1
  109. package/dist/pages/AreaGeometrySessionPage/AreaGeometrySessionPageIXL.css +385 -0
  110. package/dist/pages/AreaGeometrySessionPage/AreaGeometrySessionPageIXL.d.ts +29 -0
  111. package/dist/pages/AreaGeometrySessionPage/AreaGeometrySessionPageIXL.d.ts.map +1 -0
  112. package/dist/pages/AreaGeometrySessionPage/components/LearningDashboardPlaceholder.css +219 -0
  113. package/dist/pages/AreaGeometrySessionPage/components/LearningDashboardPlaceholder.d.ts +15 -0
  114. package/dist/pages/AreaGeometrySessionPage/components/LearningDashboardPlaceholder.d.ts.map +1 -0
  115. package/dist/pages/AreaGeometrySessionPage/components/ReviewSectionPlaceholder.css +64 -0
  116. package/dist/pages/AreaGeometrySessionPage/components/ReviewSectionPlaceholder.d.ts +11 -0
  117. package/dist/pages/AreaGeometrySessionPage/components/ReviewSectionPlaceholder.d.ts.map +1 -0
  118. package/dist/pages/AreaGeometrySessionPage/components/ScaffoldingPlaceholder.css +59 -0
  119. package/dist/pages/AreaGeometrySessionPage/components/ScaffoldingPlaceholder.d.ts +14 -0
  120. package/dist/pages/AreaGeometrySessionPage/components/ScaffoldingPlaceholder.d.ts.map +1 -0
  121. package/dist/pages/AreaGeometrySessionPage/index.d.ts +3 -1
  122. package/dist/pages/AreaGeometrySessionPage/index.d.ts.map +1 -1
  123. package/dist/pages/AreaGeometrySessionPage/types.d.ts +25 -0
  124. package/dist/pages/AreaGeometrySessionPage/types.d.ts.map +1 -1
  125. package/dist/pages/GradeUnitBrowserPage/GradeUnitBrowserPage.d.ts.map +1 -1
  126. package/dist/pages/MathSessionPage/MathSessionPage.d.ts.map +1 -1
  127. package/dist/style.css +1 -1
  128. package/dist/styles/index.css +34 -0
  129. package/dist/styles/mathcard-tokens.css +47 -5
  130. package/package.json +5 -3
@@ -1,470 +1,470 @@
1
- {
2
- "schema_version": "4.0.0",
3
- "config_version": "1.0.0",
4
- "math_prob_id": "mp-10506-0002-0003-G01-0001",
5
- "title": "梯形面积计算 - 旋转法推导",
6
- "description": "通过旋转法将梯形转化为平行四边形,从而推导梯形面积公式并计算面积。",
7
- "objective": "掌握梯形面积计算公式 S=(a+b)h/2,理解旋转倍增法推导过程",
8
- "difficulty": 2,
9
- "grade_id": "g5",
10
- "unit_name": "多边形的面积",
11
- "unit_id": 1050602,
12
- "lesson_name": "梯形的面积",
13
- "lesson_id": 105060203,
14
- "module_id": 1002,
15
- "skill_description": "利用割补或旋转策略计算梯形面积",
16
- "skill_item_id": "s-105-06-0003",
17
- "skill_id": 1003,
18
- "score": 3,
19
- "knowledge_points": [
20
- "梯形面积公式",
21
- "图形旋转变换",
22
- "转化思想"
23
- ],
24
- "metadata": {
25
- "topic": "梯形面积",
26
- "skill": "几何推导与计算",
27
- "tags": [
28
- "梯形",
29
- "旋转法",
30
- "面积计算"
31
- ],
32
- "version": "1.0.0",
33
- "author": "math-content-team",
34
- "strategy": "rotation_doubling_method"
35
- },
36
- "basic_info": {
37
- "question": "图中梯形上底为 4 mm,下底为 8 mm,高为 6 mm。梯形面积是多少?",
38
- "answerUnit": "mm²",
39
- "shape": "trapezoid",
40
- "base": 8,
41
- "topBase": 4,
42
- "height": 6,
43
- "baseUnit": "mm",
44
- "heightUnit": "mm",
45
- "variables": {
46
- "a": 4,
47
- "b": 8,
48
- "h": 6,
49
- "answer": 36
50
- }
51
- },
52
- "geometry_shapes": {
53
- "trapezoid_abcd": {
54
- "id": "trapezoid_abcd",
55
- "type": "polygon",
56
- "vertices": [
57
- {
58
- "$ref": "point_a"
59
- },
60
- {
61
- "$ref": "point_b"
62
- },
63
- {
64
- "$ref": "point_c"
65
- },
66
- {
67
- "$ref": "point_d"
68
- }
69
- ],
70
- "withLabel": true,
71
- "styleRef": "primary"
72
- },
73
- "trapezoid_copy": {
74
- "id": "trapezoid_copy",
75
- "type": "polygon",
76
- "vertices": [
77
- {
78
- "$ref": "point_a"
79
- },
80
- {
81
- "$ref": "point_b"
82
- },
83
- {
84
- "$ref": "point_c"
85
- },
86
- {
87
- "$ref": "point_d"
88
- }
89
- ],
90
- "styleRef": "secondary"
91
- },
92
- "rotation_center_m": {
93
- "id": "rotation_center_m",
94
- "type": "point",
95
- "position": {
96
- "x": 8,
97
- "y": 3.5
98
- },
99
- "name": "M",
100
- "styleRef": "primary"
101
- },
102
- "parallelogram_outline": {
103
- "id": "parallelogram_outline",
104
- "type": "polygon",
105
- "vertices": [
106
- {
107
- "$ref": "point_a"
108
- },
109
- {
110
- "$ref": "point_e"
111
- },
112
- {
113
- "$ref": "point_f"
114
- },
115
- {
116
- "$ref": "point_d"
117
- }
118
- ],
119
- "styleRef": "dashed"
120
- },
121
- "height_line": {
122
- "id": "height_line",
123
- "type": "segment",
124
- "endpoints": [
125
- {
126
- "$ref": "point_b"
127
- },
128
- {
129
- "$ref": "point_c"
130
- }
131
- ],
132
- "styleRef": "dashed"
133
- },
134
- "point_a": {
135
- "id": "point_a",
136
- "type": "point",
137
- "position": {
138
- "x": 1,
139
- "y": 1
140
- },
141
- "name": "A"
142
- },
143
- "point_b": {
144
- "id": "point_b",
145
- "type": "point",
146
- "position": {
147
- "x": 8,
148
- "y": 1
149
- },
150
- "name": "B"
151
- },
152
- "point_c": {
153
- "id": "point_c",
154
- "type": "point",
155
- "position": {
156
- "x": 8,
157
- "y": 6
158
- },
159
- "name": "C"
160
- },
161
- "point_d": {
162
- "id": "point_d",
163
- "type": "point",
164
- "position": {
165
- "x": 4,
166
- "y": 6
167
- },
168
- "name": "D"
169
- },
170
- "point_e": {
171
- "id": "point_e",
172
- "type": "point",
173
- "position": {
174
- "x": 12,
175
- "y": 1
176
- },
177
- "name": "E"
178
- },
179
- "point_f": {
180
- "id": "point_f",
181
- "type": "point",
182
- "position": {
183
- "x": 15,
184
- "y": 6
185
- },
186
- "name": "F"
187
- },
188
- "label_top": {
189
- "id": "label_top",
190
- "type": "text",
191
- "position": {
192
- "x": 6,
193
- "y": 6.5
194
- },
195
- "content": "4 mm",
196
- "styleRef": "label_position"
197
- },
198
- "label_bottom": {
199
- "id": "label_bottom",
200
- "type": "text",
201
- "position": {
202
- "x": 4,
203
- "y": 0.5
204
- },
205
- "content": "8 mm",
206
- "styleRef": "label_position"
207
- },
208
- "label_height": {
209
- "id": "label_height",
210
- "type": "text",
211
- "position": {
212
- "x": 8.5,
213
- "y": 3
214
- },
215
- "content": "h = 6",
216
- "styleRef": "label_position"
217
- }
218
- },
219
- "layout": {
220
- "type": "card",
221
- "theme": "light",
222
- "renderer": {
223
- "showFormulaSteps": true,
224
- "interactiveAnimations": true,
225
- "validateAnswers": true
226
- }
227
- },
228
- "scenes": {
229
- "question": {
230
- "layout": {
231
- "layoutRef": "vertical"
232
- },
233
- "items": [
234
- {
235
- "type": "text",
236
- "content": "梯形面积是多少?",
237
- "styleRef": "text_heading_large"
238
- },
239
- {
240
- "type": "text",
241
- "content": "图中梯形上底为 4 mm,下底为 8 mm,高为 6 mm。",
242
- "styleRef": "text_primary"
243
- },
244
- {
245
- "type": "graph",
246
- "boardRef": "default",
247
- "shapes": [
248
- {
249
- "id": "main_trap",
250
- "type": "polygon",
251
- "geometryRef": "trapezoid_abcd",
252
- "styleRef": "primary"
253
- },
254
- {
255
- "id": "h_line",
256
- "type": "segment",
257
- "geometryRef": "height_line",
258
- "styleRef": "dashed"
259
- },
260
- {
261
- "id": "txt_top",
262
- "type": "text",
263
- "geometryRef": "label_top"
264
- },
265
- {
266
- "id": "txt_bottom",
267
- "type": "text",
268
- "geometryRef": "label_bottom"
269
- },
270
- {
271
- "id": "txt_h",
272
- "type": "text",
273
- "geometryRef": "label_height"
274
- }
275
- ]
276
- },
277
- {
278
- "type": "interactive",
279
- "component": "answer_input",
280
- "config": {
281
- "inputType": "number",
282
- "unit": "mm²",
283
- "placeholder": "?"
284
- }
285
- }
286
- ]
287
- },
288
- "remember": {
289
- "layout": {
290
- "layoutRef": "vertical_centered"
291
- },
292
- "items": [
293
- {
294
- "type": "text",
295
- "content": "速记:梯形面积计算公式",
296
- "styleRef": "text_primary"
297
- },
298
- {
299
- "type": "formula",
300
- "content": "S = \\frac{(a + b) \\times h}{2}",
301
- "styleRef": "highlight"
302
- },
303
- {
304
- "type": "text",
305
- "content": "( 上底 + 下底 ) × 高 ÷ 2",
306
- "styleRef": "text_primary"
307
- }
308
- ]
309
- },
310
- "solve": {
311
- "layout": {
312
- "layoutRef": "vertical_centered"
313
- },
314
- "items": [
315
- {
316
- "type": "text",
317
- "content": "我们可以通过旋转,把梯形变成平行四边形来推导。",
318
- "styleRef": "text_primary"
319
- },
320
- {
321
- "type": "geometryTransform",
322
- "geometryTransformRef": "trapezoid_rotation_proof"
323
- },
324
- {
325
- "type": "text",
326
- "content": "拖动滑块旋转梯形,观察拼成的图形。",
327
- "styleRef": "text_primary"
328
- }
329
- ]
330
- }
331
- },
332
- "explanation": {
333
- "steps": [
334
- {
335
- "id": "exp-step-1",
336
- "type": "instructionalStep",
337
- "title": "确定旋转中心",
338
- "description": "旋转中心是梯形一腰的中点 M(8,3)。这是旋转变换的关键点。",
339
- "chartConfig": {
340
- "type": "graph",
341
- "boardRef": "default",
342
- "shapes": [
343
- {
344
- "type": "polygon",
345
- "geometryRef": "trapezoid_abcd",
346
- "styleRef": "primary"
347
- },
348
- {
349
- "type": "point",
350
- "geometryRef": "rotation_center_m",
351
- "styleRef": "primary",
352
- "size": 4
353
- }
354
- ]
355
- }
356
- },
357
- {
358
- "id": "exp-step-2",
359
- "type": "instructionalStep",
360
- "title": "旋转梯形副本",
361
- "description": "将梯形副本顺时针旋转 180°,使其与原始梯形拼接。",
362
- "chartConfig": {
363
- "type": "geometryTransform",
364
- "geometryTransformRef": "trapezoid_rotation_proof"
365
- }
366
- },
367
- {
368
- "id": "exp-step-3",
369
- "type": "instructionalStep",
370
- "title": "拼成平行四边形并计算面积",
371
- "description": "两个梯形拼接成一个大平行四边形。平行四边形面积 = (上底+下底) × 高,梯形面积是它的一半。",
372
- "chartConfig": {
373
- "type": "graph",
374
- "boardRef": "extended",
375
- "shapes": [
376
- {
377
- "type": "polygon",
378
- "geometryRef": "parallelogram_outline",
379
- "styleRef": "dashed"
380
- },
381
- {
382
- "type": "polygon",
383
- "geometryRef": "trapezoid_abcd",
384
- "styleRef": "primary"
385
- },
386
- {
387
- "type": "polygon",
388
- "geometryRef": "trapezoid_copy",
389
- "styleRef": "secondary"
390
- }
391
- ]
392
- }
393
- }
394
- ]
395
- },
396
- "geometry_transform_configs": {
397
- "trapezoid_rotation_proof": {
398
- "id": "trapezoid_rotation_proof",
399
- "description": "梯形旋转倍增法演示",
400
- "base": 8,
401
- "height": 6,
402
- "unit": "mm",
403
- "strategy": "double_rotation",
404
- "shapes": {
405
- "static": [
406
- {
407
- "id": "static_trap",
408
- "type": "polygon",
409
- "geometryRef": "trapezoid_abcd",
410
- "styleRef": "primary"
411
- },
412
- {
413
- "id": "center_point",
414
- "type": "point",
415
- "geometryRef": "rotation_center_m"
416
- }
417
- ],
418
- "animated": [
419
- {
420
- "id": "trapezoid_copy",
421
- "type": "polygon",
422
- "geometryRef": "trapezoid_copy",
423
- "styleRef": "secondary"
424
- }
425
- ]
426
- },
427
- "transform": {
428
- "transformRef": "right_rotation"
429
- },
430
- "sliderRef": "slider_horizontal",
431
- "boardRef": "extended"
432
- }
433
- },
434
- "transform_definitions": {
435
- "right_rotation": {
436
- "id": "right_rotation",
437
- "type": "rotation",
438
- "config": {
439
- "center": {
440
- "x": 8,
441
- "y": 3.5
442
- },
443
- "startAngle": 0,
444
- "endAngle": 3.14159,
445
- "direction": "clockwise"
446
- },
447
- "targetGroup": "trapezoid_copy"
448
- }
449
- },
450
- "answer_info": {
451
- "value": 36,
452
- "unit": "mm²",
453
- "type": "number",
454
- "tolerance": 0.1,
455
- "validation": {
456
- "type": "exact",
457
- "allowPartial": false
458
- },
459
- "explanation_text": "正确答案是 36 mm²。根据公式 S = (4+8)×6÷2 = 36。",
460
- "solution_steps": [
461
- "确定上底 a = 4 mm",
462
- "确定下底 b = 8 mm",
463
- "确定高 h = 6 mm",
464
- "代入公式 S = (a+b)×h÷2",
465
- "计算 S = (4+8)×6÷2 = 36"
466
- ]
467
- },
468
- "created_at": "2026-02-12T00:00:00Z",
469
- "updated_at": "2026-02-12T00:00:00Z"
1
+ {
2
+ "schema_version": "4.0.0",
3
+ "config_version": "1.0.0",
4
+ "math_prob_id": "mp-10506-0002-0003-G01-0001",
5
+ "title": "梯形面积计算 - 旋转法推导",
6
+ "description": "通过旋转法将梯形转化为平行四边形,从而推导梯形面积公式并计算面积。",
7
+ "objective": "掌握梯形面积计算公式 S=(a+b)h/2,理解旋转倍增法推导过程",
8
+ "difficulty": 2,
9
+ "grade_id": "g5",
10
+ "unit_name": "多边形的面积",
11
+ "unit_id": 1050602,
12
+ "lesson_name": "梯形的面积",
13
+ "lesson_id": 105060203,
14
+ "module_id": 1002,
15
+ "skill_description": "利用割补或旋转策略计算梯形面积",
16
+ "skill_item_id": "s-105-06-0003",
17
+ "skill_id": 1003,
18
+ "score": 3,
19
+ "knowledge_points": [
20
+ "梯形面积公式",
21
+ "图形旋转变换",
22
+ "转化思想"
23
+ ],
24
+ "metadata": {
25
+ "topic": "梯形面积",
26
+ "skill": "几何推导与计算",
27
+ "tags": [
28
+ "梯形",
29
+ "旋转法",
30
+ "面积计算"
31
+ ],
32
+ "version": "1.0.0",
33
+ "author": "math-content-team",
34
+ "strategy": "rotation_doubling_method"
35
+ },
36
+ "basic_info": {
37
+ "question": "图中梯形上底为 4 mm,下底为 8 mm,高为 6 mm。梯形面积是多少?",
38
+ "answerUnit": "mm²",
39
+ "shape": "trapezoid",
40
+ "base": 8,
41
+ "topBase": 4,
42
+ "height": 6,
43
+ "baseUnit": "mm",
44
+ "heightUnit": "mm",
45
+ "variables": {
46
+ "a": 4,
47
+ "b": 8,
48
+ "h": 6,
49
+ "answer": 36
50
+ }
51
+ },
52
+ "geometry_shapes": {
53
+ "trapezoid_abcd": {
54
+ "id": "trapezoid_abcd",
55
+ "type": "polygon",
56
+ "vertices": [
57
+ {
58
+ "$ref": "point_a"
59
+ },
60
+ {
61
+ "$ref": "point_b"
62
+ },
63
+ {
64
+ "$ref": "point_c"
65
+ },
66
+ {
67
+ "$ref": "point_d"
68
+ }
69
+ ],
70
+ "withLabel": true,
71
+ "styleRef": "primary"
72
+ },
73
+ "trapezoid_copy": {
74
+ "id": "trapezoid_copy",
75
+ "type": "polygon",
76
+ "vertices": [
77
+ {
78
+ "$ref": "point_a"
79
+ },
80
+ {
81
+ "$ref": "point_b"
82
+ },
83
+ {
84
+ "$ref": "point_c"
85
+ },
86
+ {
87
+ "$ref": "point_d"
88
+ }
89
+ ],
90
+ "styleRef": "secondary"
91
+ },
92
+ "rotation_center_m": {
93
+ "id": "rotation_center_m",
94
+ "type": "point",
95
+ "position": {
96
+ "x": 8,
97
+ "y": 3.5
98
+ },
99
+ "name": "M",
100
+ "styleRef": "primary"
101
+ },
102
+ "parallelogram_outline": {
103
+ "id": "parallelogram_outline",
104
+ "type": "polygon",
105
+ "vertices": [
106
+ {
107
+ "$ref": "point_a"
108
+ },
109
+ {
110
+ "$ref": "point_e"
111
+ },
112
+ {
113
+ "$ref": "point_f"
114
+ },
115
+ {
116
+ "$ref": "point_d"
117
+ }
118
+ ],
119
+ "styleRef": "dashed"
120
+ },
121
+ "height_line": {
122
+ "id": "height_line",
123
+ "type": "segment",
124
+ "endpoints": [
125
+ {
126
+ "$ref": "point_b"
127
+ },
128
+ {
129
+ "$ref": "point_c"
130
+ }
131
+ ],
132
+ "styleRef": "dashed"
133
+ },
134
+ "point_a": {
135
+ "id": "point_a",
136
+ "type": "point",
137
+ "position": {
138
+ "x": 1,
139
+ "y": 1
140
+ },
141
+ "name": "A"
142
+ },
143
+ "point_b": {
144
+ "id": "point_b",
145
+ "type": "point",
146
+ "position": {
147
+ "x": 8,
148
+ "y": 1
149
+ },
150
+ "name": "B"
151
+ },
152
+ "point_c": {
153
+ "id": "point_c",
154
+ "type": "point",
155
+ "position": {
156
+ "x": 8,
157
+ "y": 6
158
+ },
159
+ "name": "C"
160
+ },
161
+ "point_d": {
162
+ "id": "point_d",
163
+ "type": "point",
164
+ "position": {
165
+ "x": 4,
166
+ "y": 6
167
+ },
168
+ "name": "D"
169
+ },
170
+ "point_e": {
171
+ "id": "point_e",
172
+ "type": "point",
173
+ "position": {
174
+ "x": 12,
175
+ "y": 1
176
+ },
177
+ "name": "E"
178
+ },
179
+ "point_f": {
180
+ "id": "point_f",
181
+ "type": "point",
182
+ "position": {
183
+ "x": 15,
184
+ "y": 6
185
+ },
186
+ "name": "F"
187
+ },
188
+ "label_top": {
189
+ "id": "label_top",
190
+ "type": "text",
191
+ "position": {
192
+ "x": 6,
193
+ "y": 6.5
194
+ },
195
+ "content": "4 mm",
196
+ "styleRef": "label_position"
197
+ },
198
+ "label_bottom": {
199
+ "id": "label_bottom",
200
+ "type": "text",
201
+ "position": {
202
+ "x": 4,
203
+ "y": 0.5
204
+ },
205
+ "content": "8 mm",
206
+ "styleRef": "label_position"
207
+ },
208
+ "label_height": {
209
+ "id": "label_height",
210
+ "type": "text",
211
+ "position": {
212
+ "x": 8.5,
213
+ "y": 3
214
+ },
215
+ "content": "h = 6",
216
+ "styleRef": "label_position"
217
+ }
218
+ },
219
+ "layout": {
220
+ "type": "card",
221
+ "theme": "light",
222
+ "renderer": {
223
+ "showFormulaSteps": true,
224
+ "interactiveAnimations": true,
225
+ "validateAnswers": true
226
+ }
227
+ },
228
+ "scenes": {
229
+ "question": {
230
+ "layout": {
231
+ "layoutRef": "vertical"
232
+ },
233
+ "items": [
234
+ {
235
+ "type": "text",
236
+ "content": "梯形面积是多少?",
237
+ "styleRef": "text_heading_large"
238
+ },
239
+ {
240
+ "type": "text",
241
+ "content": "图中梯形上底为 4 mm,下底为 8 mm,高为 6 mm。",
242
+ "styleRef": "text_primary"
243
+ },
244
+ {
245
+ "type": "graph",
246
+ "boardRef": "default",
247
+ "shapes": [
248
+ {
249
+ "id": "main_trap",
250
+ "type": "polygon",
251
+ "geometryRef": "trapezoid_abcd",
252
+ "styleRef": "primary"
253
+ },
254
+ {
255
+ "id": "h_line",
256
+ "type": "segment",
257
+ "geometryRef": "height_line",
258
+ "styleRef": "dashed"
259
+ },
260
+ {
261
+ "id": "txt_top",
262
+ "type": "text",
263
+ "geometryRef": "label_top"
264
+ },
265
+ {
266
+ "id": "txt_bottom",
267
+ "type": "text",
268
+ "geometryRef": "label_bottom"
269
+ },
270
+ {
271
+ "id": "txt_h",
272
+ "type": "text",
273
+ "geometryRef": "label_height"
274
+ }
275
+ ]
276
+ },
277
+ {
278
+ "type": "interactive",
279
+ "component": "answer_input",
280
+ "config": {
281
+ "inputType": "number",
282
+ "unit": "mm²",
283
+ "placeholder": "?"
284
+ }
285
+ }
286
+ ]
287
+ },
288
+ "remember": {
289
+ "layout": {
290
+ "layoutRef": "vertical_centered"
291
+ },
292
+ "items": [
293
+ {
294
+ "type": "text",
295
+ "content": "速记:梯形面积计算公式",
296
+ "styleRef": "text_primary"
297
+ },
298
+ {
299
+ "type": "formula",
300
+ "content": "S = \\frac{(a + b) \\times h}{2}",
301
+ "styleRef": "highlight"
302
+ },
303
+ {
304
+ "type": "text",
305
+ "content": "( 上底 + 下底 ) × 高 ÷ 2",
306
+ "styleRef": "text_primary"
307
+ }
308
+ ]
309
+ },
310
+ "solve": {
311
+ "layout": {
312
+ "layoutRef": "vertical_centered"
313
+ },
314
+ "items": [
315
+ {
316
+ "type": "text",
317
+ "content": "我们可以通过旋转,把梯形变成平行四边形来推导。",
318
+ "styleRef": "text_primary"
319
+ },
320
+ {
321
+ "type": "geometryTransform",
322
+ "geometryTransformRef": "trapezoid_rotation_proof"
323
+ },
324
+ {
325
+ "type": "text",
326
+ "content": "拖动滑块旋转梯形,观察拼成的图形。",
327
+ "styleRef": "text_primary"
328
+ }
329
+ ]
330
+ }
331
+ },
332
+ "explanation": {
333
+ "steps": [
334
+ {
335
+ "id": "exp-step-1",
336
+ "type": "instructionalStep",
337
+ "title": "确定旋转中心",
338
+ "description": "旋转中心是梯形一腰的中点 M(8,3)。这是旋转变换的关键点。",
339
+ "chartConfig": {
340
+ "type": "graph",
341
+ "boardRef": "default",
342
+ "shapes": [
343
+ {
344
+ "type": "polygon",
345
+ "geometryRef": "trapezoid_abcd",
346
+ "styleRef": "primary"
347
+ },
348
+ {
349
+ "type": "point",
350
+ "geometryRef": "rotation_center_m",
351
+ "styleRef": "primary",
352
+ "size": 4
353
+ }
354
+ ]
355
+ }
356
+ },
357
+ {
358
+ "id": "exp-step-2",
359
+ "type": "instructionalStep",
360
+ "title": "旋转梯形副本",
361
+ "description": "将梯形副本顺时针旋转 180°,使其与原始梯形拼接。",
362
+ "chartConfig": {
363
+ "type": "geometryTransform",
364
+ "geometryTransformRef": "trapezoid_rotation_proof"
365
+ }
366
+ },
367
+ {
368
+ "id": "exp-step-3",
369
+ "type": "instructionalStep",
370
+ "title": "拼成平行四边形并计算面积",
371
+ "description": "两个梯形拼接成一个大平行四边形。平行四边形面积 = (上底+下底) × 高,梯形面积是它的一半。",
372
+ "chartConfig": {
373
+ "type": "graph",
374
+ "boardRef": "extended",
375
+ "shapes": [
376
+ {
377
+ "type": "polygon",
378
+ "geometryRef": "parallelogram_outline",
379
+ "styleRef": "dashed"
380
+ },
381
+ {
382
+ "type": "polygon",
383
+ "geometryRef": "trapezoid_abcd",
384
+ "styleRef": "primary"
385
+ },
386
+ {
387
+ "type": "polygon",
388
+ "geometryRef": "trapezoid_copy",
389
+ "styleRef": "secondary"
390
+ }
391
+ ]
392
+ }
393
+ }
394
+ ]
395
+ },
396
+ "geometry_transform_configs": {
397
+ "trapezoid_rotation_proof": {
398
+ "id": "trapezoid_rotation_proof",
399
+ "description": "梯形旋转倍增法演示",
400
+ "base": 8,
401
+ "height": 6,
402
+ "unit": "mm",
403
+ "strategy": "double_rotation",
404
+ "shapes": {
405
+ "static": [
406
+ {
407
+ "id": "static_trap",
408
+ "type": "polygon",
409
+ "geometryRef": "trapezoid_abcd",
410
+ "styleRef": "primary"
411
+ },
412
+ {
413
+ "id": "center_point",
414
+ "type": "point",
415
+ "geometryRef": "rotation_center_m"
416
+ }
417
+ ],
418
+ "animated": [
419
+ {
420
+ "id": "trapezoid_copy",
421
+ "type": "polygon",
422
+ "geometryRef": "trapezoid_copy",
423
+ "styleRef": "secondary"
424
+ }
425
+ ]
426
+ },
427
+ "transform": {
428
+ "transformRef": "right_rotation"
429
+ },
430
+ "sliderRef": "slider_horizontal",
431
+ "boardRef": "extended"
432
+ }
433
+ },
434
+ "transform_definitions": {
435
+ "right_rotation": {
436
+ "id": "right_rotation",
437
+ "type": "rotation",
438
+ "config": {
439
+ "center": {
440
+ "x": 8,
441
+ "y": 3.5
442
+ },
443
+ "startAngle": 0,
444
+ "endAngle": 3.14159,
445
+ "direction": "clockwise"
446
+ },
447
+ "targetGroup": "trapezoid_copy"
448
+ }
449
+ },
450
+ "answer_info": {
451
+ "value": 36,
452
+ "unit": "mm²",
453
+ "type": "number",
454
+ "tolerance": 0.1,
455
+ "validation": {
456
+ "type": "exact",
457
+ "allowPartial": false
458
+ },
459
+ "explanation_text": "正确答案是 36 mm²。根据公式 S = (4+8)×6÷2 = 36。",
460
+ "solution_steps": [
461
+ "确定上底 a = 4 mm",
462
+ "确定下底 b = 8 mm",
463
+ "确定高 h = 6 mm",
464
+ "代入公式 S = (a+b)×h÷2",
465
+ "计算 S = (4+8)×6÷2 = 36"
466
+ ]
467
+ },
468
+ "created_at": "2026-02-12T00:00:00Z",
469
+ "updated_at": "2026-02-12T00:00:00Z"
470
470
  }