From e6e983f970319e5416b58ad6eb51d1e5a17a3a3d Mon Sep 17 00:00:00 2001 From: Zareian Date: Thu, 15 Oct 2026 02:21:02 +0330 Subject: [PATCH] Figures must not give the answer away: blank titles on new figured questions, 7 trivial questions removed, 7 reworded; apply_fixups tool Co-Authored-By: Claude Sonnet 5.5 --- CLAUDE.md | 2 + content/seed/questions.json | 1513 +++++++++++++-------------------- docs/content-authoring.md | 19 + tools/figures/apply_fixups.py | 79 ++ 4 files changed, 698 insertions(+), 915 deletions(-) create mode 100644 tools/figures/apply_fixups.py diff --git a/CLAUDE.md b/CLAUDE.md index c39d56b..276c1d2 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -330,6 +330,8 @@ has been done before. time; this rule is the mechanism, so new figures need no other switch. Write them with `tools/figures/batch.py` (`docs/content-authoring.md` «سوالِ شکل‌دار»). The lesson-level list (`/api/lessons/{id}/questions`) does not reorder; only the island quiz does. + **A figure must not give the answer away** (title, labels, or drawing the thing the question asks for); the + rules and the fix-up tool (`tools/figures/apply_fixups.py`) are in `docs/content-authoring.md`. - `POST /api/nodes/{id}/quiz/complete` completes the island at any score (score sets stars/XP) and returns `nextNodeId`. It refuses a locked island (403 `node_locked`, same rule as `/api/home`) and a user who has not answered every question (409 `answers_missing`; required = `max(client totalQuestions, min(4, questions diff --git a/content/seed/questions.json b/content/seed/questions.json index 7545490..f85d23b 100644 --- a/content/seed/questions.json +++ b/content/seed/questions.json @@ -336320,7 +336320,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "دایره به مرکز O", + "title": "", "axes": false, "grid": false, "points": { @@ -336390,7 +336390,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "نقاط به فاصله‌ی ۲ از خط d", + "title": "", "axes": false, "grid": false, "points": { @@ -336468,7 +336468,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دو دایره‌ی هم‌شعاع", + "title": "", "axes": false, "grid": false, "points": { @@ -336555,7 +336555,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "دایره و خط d", + "title": "", "axes": false, "grid": false, "points": { @@ -336614,7 +336614,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دو دایره‌ی مماس", + "title": "", "axes": false, "grid": false, "points": { @@ -336674,7 +336674,7 @@ "correct": 0, "figure": { "kind": "plane", - "title": "نقاط با دو شرط فاصله", + "title": "", "axes": false, "grid": false, "points": { @@ -336734,7 +336734,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "مثلث ABC", + "title": "", "axes": false, "grid": false, "points": {}, @@ -336778,7 +336778,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "نقطه‌ی P", + "title": "", "axes": false, "grid": false, "points": { @@ -336843,7 +336843,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "نیمساز زاویه", + "title": "", "axes": false, "grid": false, "points": { @@ -336958,7 +336958,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "نقطه‌ی هم‌فاصله از دو ضلع", + "title": "", "axes": false, "grid": false, "points": { @@ -337039,7 +337039,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دو مثلث", + "title": "", "axes": false, "grid": false, "points": { @@ -337128,7 +337128,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "عمودمنصف", + "title": "", "axes": false, "grid": false, "points": { @@ -337219,7 +337219,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "عمودمنصف AB", + "title": "", "axes": false, "grid": true, "points": { @@ -337299,7 +337299,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "چهار نقطه", + "title": "", "axes": false, "grid": false, "points": { @@ -337358,7 +337358,7 @@ "correct": 0, "figure": { "kind": "plane", - "title": "دو وتر هم‌فاصله از مرکز", + "title": "", "axes": false, "grid": false, "points": { @@ -337473,7 +337473,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "رسم عمودمنصف", + "title": "", "axes": false, "grid": false, "points": { @@ -337579,7 +337579,7 @@ "correct": 3, "figure": { "kind": "plane", - "title": "عمود از نقطه بر خط", + "title": "", "axes": false, "grid": false, "points": { @@ -337682,7 +337682,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دو عمود بر یک خط", + "title": "", "axes": false, "grid": false, "points": { @@ -337773,7 +337773,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "قطرهای متوازی‌الاضلاع", + "title": "", "axes": false, "grid": false, "points": { @@ -337892,7 +337892,7 @@ "correct": 3, "figure": { "kind": "plane", - "title": "مستطیل", + "title": "", "axes": false, "grid": false, "points": {}, @@ -337941,7 +337941,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "لوزی", + "title": "", "axes": false, "grid": false, "points": {}, @@ -337994,7 +337994,7 @@ "correct": 3, "figure": { "kind": "plane", - "title": "هم‌فاصله از دو ضلع", + "title": "", "axes": false, "grid": false, "points": { @@ -338094,7 +338094,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "وتر و شعاع", + "title": "", "axes": false, "grid": false, "points": { @@ -338184,7 +338184,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "مثلث ABC", + "title": "", "axes": false, "grid": false, "points": {}, @@ -338228,7 +338228,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "چهارضلعی", + "title": "", "axes": false, "grid": false, "points": { @@ -338324,7 +338324,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "پنج‌ضلعی منتظم", + "title": "", "axes": false, "grid": false, "points": {}, @@ -338362,7 +338362,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "مرکز دایره‌ی گذرنده از رأس‌ها", + "title": "", "axes": false, "grid": false, "points": { @@ -338457,7 +338457,7 @@ "correct": 0, "figure": { "kind": "plane", - "title": "برخورد عمودمنصف‌ها", + "title": "", "axes": false, "grid": false, "points": { @@ -338546,7 +338546,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "ارتفاع‌های مثلث قائم‌الزاویه", + "title": "", "axes": false, "grid": false, "points": { @@ -338629,7 +338629,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "نیمسازهای مثلث", + "title": "", "axes": false, "grid": false, "points": { @@ -338719,7 +338719,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "مثلث ABC", + "title": "", "axes": false, "grid": false, "points": {}, @@ -338763,7 +338763,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "مثلث متساوی‌الساقین ADC", + "title": "", "axes": false, "grid": false, "points": { @@ -338859,7 +338859,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "ارتفاع‌های مثلث متساوی‌الساقین", + "title": "", "axes": false, "grid": false, "points": { @@ -338977,7 +338977,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "چهارضلعی با قطرهای منصف", + "title": "", "axes": false, "grid": false, "points": { @@ -339083,7 +339083,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "دو ارتفاع برابر", + "title": "", "axes": false, "grid": false, "points": { @@ -339190,7 +339190,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "مثلث ABC", + "title": "", "axes": false, "grid": false, "points": {}, @@ -339231,7 +339231,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "مثلث ABC", + "title": "", "axes": false, "grid": false, "points": {}, @@ -339275,7 +339275,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دو مثلث قائم‌الزاویه", + "title": "", "axes": false, "grid": false, "points": {}, @@ -339339,7 +339339,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "خطوط موازی و مورب", + "title": "", "axes": false, "grid": false, "points": { @@ -339438,7 +339438,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "مثلث با یک ضلع مجهول", + "title": "", "axes": false, "grid": false, "points": {}, @@ -339482,7 +339482,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "مثلث منفرجه", + "title": "", "axes": false, "grid": false, "points": {}, @@ -339528,7 +339528,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "مثلث ABC", + "title": "", "axes": false, "grid": false, "points": {}, @@ -339572,7 +339572,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "مساحت مثلث", + "title": "", "axes": false, "grid": false, "points": { @@ -339659,7 +339659,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دو مثلث هم‌ارتفاع", + "title": "", "axes": false, "grid": false, "points": { @@ -339746,7 +339746,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "رأس مشترک A", + "title": "", "axes": false, "grid": false, "points": { @@ -339833,7 +339833,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "قاعده‌ی مشترک BC", + "title": "", "axes": false, "grid": false, "points": { @@ -339921,7 +339921,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "خط موازی ضلع سوم", + "title": "", "axes": false, "grid": false, "points": { @@ -340029,7 +340029,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "خط موازی MN", + "title": "", "axes": false, "grid": false, "points": { @@ -340130,7 +340130,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "خط موازی ضلع سوم", + "title": "", "axes": false, "grid": false, "points": { @@ -340225,7 +340225,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دو خط موازی", + "title": "", "axes": false, "grid": false, "points": { @@ -340331,7 +340331,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "خط موازی ضلع سوم", + "title": "", "axes": false, "grid": false, "points": { @@ -340445,7 +340445,7 @@ "correct": 3, "figure": { "kind": "plane", - "title": "خط موازی ضلع سوم", + "title": "", "axes": false, "grid": false, "points": { @@ -340547,7 +340547,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "سایه‌ی چوب و درخت", + "title": "", "axes": false, "grid": false, "points": {}, @@ -340611,7 +340611,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "ذوزنقه", + "title": "", "axes": false, "grid": false, "points": { @@ -340708,7 +340708,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "سه خط موازی", + "title": "", "axes": false, "grid": false, "points": { @@ -340839,7 +340839,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دو مثلث متشابه", + "title": "", "axes": false, "grid": false, "points": {}, @@ -340901,7 +340901,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "MN موازی BC", + "title": "", "axes": false, "grid": false, "points": { @@ -341003,7 +341003,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دو مثلث متشابه", + "title": "", "axes": false, "grid": false, "points": {}, @@ -341065,7 +341065,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "ارتفاع وارد بر وتر", + "title": "", "axes": false, "grid": false, "points": { @@ -341164,7 +341164,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "ارتفاع وارد بر وتر", + "title": "", "axes": false, "grid": false, "points": { @@ -341265,7 +341265,7 @@ "correct": 3, "figure": { "kind": "plane", - "title": "ارتفاع وارد بر وتر", + "title": "", "axes": false, "grid": false, "points": { @@ -341366,7 +341366,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "مثلث ۱۳، ۱۴، ۱۵", + "title": "", "axes": false, "grid": false, "points": {}, @@ -341412,7 +341412,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "روش سایه", + "title": "", "axes": false, "grid": false, "points": {}, @@ -341476,7 +341476,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "روش آینه", + "title": "", "axes": false, "grid": false, "points": {}, @@ -341540,7 +341540,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دو مثلث متشابه", + "title": "", "axes": false, "grid": false, "points": {}, @@ -341602,7 +341602,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "دو مثلث متشابه", + "title": "", "axes": false, "grid": false, "points": {}, @@ -341664,7 +341664,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "ارتفاع وارد بر وتر", + "title": "", "axes": false, "grid": false, "points": { @@ -341762,7 +341762,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "میان‌خط ذوزنقه", + "title": "", "axes": false, "grid": false, "points": { @@ -341854,7 +341854,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "شش‌ضلعی", + "title": "", "axes": false, "grid": false, "points": {}, @@ -341893,7 +341893,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "لوزی و قطر", + "title": "", "axes": false, "grid": false, "points": {}, @@ -341938,7 +341938,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "قطرهای متوازی‌الاضلاع", + "title": "", "axes": false, "grid": false, "points": { @@ -342035,7 +342035,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "AB موازی و برابر CD", + "title": "", "axes": false, "grid": false, "points": { @@ -342117,7 +342117,7 @@ "correct": 3, "figure": { "kind": "plane", - "title": "میانه‌ی وارد بر وتر", + "title": "", "axes": false, "grid": false, "points": { @@ -342188,50 +342188,6 @@ ] } }, - { - "path": [ - "پایه دهم", - "فصل ۳: چندضلعی‌ها", - "قطرها و چهارضلعی‌های خاص", - "تشخیص شکل جک خودرو به عنوان لوزی یا مربع" - ], - "prompt": "چهارضلعی ABCD شکل لوزی است و یکی از زاویه‌هایش قائمه است. این چهارضلعی چه نام دارد؟", - "type": "multiple_choice", - "choices": [ - "مستطیل غیرمربع", - "مربع", - "ذوزنقه", - "متوازی‌الاضلاع غیرلوزی" - ], - "correct": 1, - "figure": { - "kind": "plane", - "title": "لوزی با زاویه‌ی قائمه", - "axes": false, - "grid": false, - "points": {}, - "items": [ - { - "type": "quad", - "shape": "rhombus", - "names": [ - "A", - "B", - "C", - "D" - ], - "side": 4, - "angle": 90 - }, - { - "type": "rightAngle", - "vertex": "A", - "from": "B", - "to": "D" - } - ] - } - }, { "path": [ "پایه دهم", @@ -342250,7 +342206,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "ذوزنقه‌ی متساوی‌الساقین", + "title": "", "axes": false, "grid": false, "points": { @@ -342332,7 +342288,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "قطرهای ذوزنقه", + "title": "", "axes": false, "grid": false, "points": { @@ -342416,7 +342372,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "مثلث ۳۰-۶۰-۹۰", + "title": "", "axes": false, "grid": false, "points": {}, @@ -342461,7 +342417,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "مثلث ۴۵-۴۵-۹۰", + "title": "", "axes": false, "grid": false, "points": {}, @@ -342506,7 +342462,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "وسط‌های ضلع‌ها", + "title": "", "axes": false, "grid": false, "points": { @@ -342618,7 +342574,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "چهارضلعی وسط‌ها", + "title": "", "axes": false, "grid": false, "points": { @@ -342759,7 +342715,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "قطرهای عمود", + "title": "", "axes": false, "grid": false, "points": { @@ -342852,7 +342808,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "متوازی‌الاضلاع", + "title": "", "axes": false, "grid": false, "points": { @@ -342944,7 +342900,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "ذوزنقه", + "title": "", "axes": false, "grid": false, "points": { @@ -343042,7 +342998,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "لوزی", + "title": "", "axes": false, "grid": false, "points": {}, @@ -343095,7 +343051,7 @@ "correct": 0, "figure": { "kind": "plane", - "title": "پاره‌خط واصل وسط‌ها", + "title": "", "axes": false, "grid": false, "points": { @@ -343212,7 +343168,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "میانه‌ها و مرکز ثقل", + "title": "", "axes": false, "grid": false, "points": { @@ -343322,7 +343278,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "قطرهای ذوزنقه", + "title": "", "axes": false, "grid": false, "points": { @@ -343430,7 +343386,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "چندضلعی شبکه‌ای", + "title": "", "axes": false, "grid": true, "points": { @@ -343489,7 +343445,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "پنج‌ضلعی شبکه‌ای", + "title": "", "axes": false, "grid": true, "points": { @@ -343566,7 +343522,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "مربع در صفحه‌ی مختصات", + "title": "", "axes": true, "grid": true, "points": { @@ -343634,7 +343590,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "هفت‌ضلعی", + "title": "", "axes": false, "grid": false, "points": {}, @@ -343674,7 +343630,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "متوازی‌الاضلاع", + "title": "", "axes": false, "grid": false, "points": { @@ -343756,7 +343712,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "ذوزنقه", + "title": "", "axes": false, "grid": false, "points": { @@ -343854,7 +343810,7 @@ "correct": 1, "figure": { "kind": "solid", - "title": "مکعب", + "title": "", "shape": "cube", "dims": { "a": 3 @@ -343879,7 +343835,7 @@ "correct": 3, "figure": { "kind": "solid", - "title": "مکعب", + "title": "", "shape": "cube", "dims": { "a": 3 @@ -343904,7 +343860,7 @@ "correct": 2, "figure": { "kind": "solid", - "title": "منشور سه‌پهلو", + "title": "", "shape": "prism", "dims": { "n": 3, @@ -343931,7 +343887,7 @@ "correct": 1, "figure": { "kind": "solid", - "title": "مکعب", + "title": "", "shape": "cube", "dims": { "a": 3 @@ -343956,7 +343912,7 @@ "correct": 1, "figure": { "kind": "pattern", - "title": "لایه‌های مثلثی", + "title": "", "layout": "triangle", "unit": "dot", "stages": [ @@ -343986,7 +343942,7 @@ "correct": 1, "figure": { "kind": "pattern", - "title": "پلکان مکعبی", + "title": "", "layout": "stair", "unit": "square", "stages": [ @@ -344012,7 +343968,7 @@ "correct": 1, "figure": { "kind": "solid", - "title": "دو لایه‌ی ۳ در ۲", + "title": "", "shape": "cuboid", "dims": { "a": 3, @@ -344044,7 +344000,7 @@ "correct": 1, "figure": { "kind": "solid", - "title": "ستون ۸ مکعبی", + "title": "", "shape": "cuboid", "dims": { "a": 1, @@ -344071,7 +344027,7 @@ "correct": 2, "figure": { "kind": "solid", - "title": "مکعب مستطیل", + "title": "", "shape": "cuboid", "dims": { "a": 3, @@ -344103,7 +344059,7 @@ "correct": 1, "figure": { "kind": "solid", - "title": "استوانه", + "title": "", "shape": "cylinder", "dims": { "r": 2, @@ -344129,7 +344085,7 @@ "correct": 3, "figure": { "kind": "solid", - "title": "مخروط", + "title": "", "shape": "cone", "dims": { "r": 2, @@ -344155,7 +344111,7 @@ "correct": 1, "figure": { "kind": "solid", - "title": "کره", + "title": "", "shape": "sphere", "dims": { "r": 2 @@ -344180,7 +344136,7 @@ "correct": 1, "figure": { "kind": "solid", - "title": "هرم با قاعده‌ی مربع", + "title": "", "shape": "pyramid", "dims": { "n": 4, @@ -344207,7 +344163,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "برش کره", + "title": "", "axes": false, "grid": false, "points": { @@ -344297,7 +344253,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "دوران مستطیل", + "title": "", "axes": false, "grid": false, "points": {}, @@ -344343,7 +344299,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "دوران نیم‌دایره", + "title": "", "axes": false, "grid": false, "points": { @@ -344401,7 +344357,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دوران ربع دایره", + "title": "", "axes": false, "grid": false, "points": { @@ -344476,7 +344432,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "دوران مثلث", + "title": "", "axes": false, "grid": false, "points": {}, @@ -344519,7 +344475,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دوران مربع", + "title": "", "axes": false, "grid": false, "points": {}, @@ -344564,7 +344520,7 @@ "correct": 3, "figure": { "kind": "solid", - "title": "منشور سه‌پهلو", + "title": "", "shape": "prism", "dims": { "n": 3, @@ -344591,7 +344547,7 @@ "correct": 2, "figure": { "kind": "solid", - "title": "مکعب به یال ۲", + "title": "", "shape": "cube", "dims": { "a": 2 @@ -344619,7 +344575,7 @@ "correct": 1, "figure": { "kind": "solid", - "title": "استوانه", + "title": "", "shape": "cylinder", "dims": { "r": 6, @@ -344649,7 +344605,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دو دایره‌ی هم‌شعاع", + "title": "", "axes": false, "grid": false, "points": { @@ -344709,7 +344665,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "فاصله از نقطه و خط", + "title": "", "axes": false, "grid": false, "points": { @@ -344784,7 +344740,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "دایره و محور x", + "title": "", "axes": true, "grid": false, "points": { @@ -344829,7 +344785,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "دایره‌ی مماس بر خط", + "title": "", "axes": true, "grid": false, "points": { @@ -344883,7 +344839,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "خط‌المرکزین", + "title": "", "axes": true, "grid": false, "points": { @@ -344941,7 +344897,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دو دایره‌ی مماس درون", + "title": "", "axes": false, "grid": false, "points": { @@ -345001,7 +344957,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "مماس بر دایره", + "title": "", "axes": true, "grid": false, "points": { @@ -345047,168 +345003,6 @@ ] } }, - { - "path": [ - "پایه دوازدهم", - "فصل ۲: آشنایی با مقاطع مخروطی", - "دایره: نقاط و خطوط", - "تعیین وضعیت نقاط نسبت به دایره" - ], - "prompt": "دایره‌ی x² + y² − ۲x + ۴y − ۵ = ۰ و نقطه‌ی D(۴، −۱) در شکل دیده می‌شوند. نقطه‌ی D نسبت به دایره چه وضعیتی دارد؟", - "type": "multiple_choice", - "choices": [ - "درون دایره", - "روی دایره", - "بیرون دایره", - "نمی‌توان گفت" - ], - "correct": 1, - "figure": { - "kind": "plane", - "title": "نقطه و دایره", - "axes": true, - "grid": false, - "points": { - "C": [ - 1, - -2 - ], - "D": [ - 4, - -1 - ] - }, - "items": [ - { - "type": "circle", - "center": "C", - "r": 3.162, - "color": "blue" - }, - { - "type": "point", - "point": "C" - }, - { - "type": "point", - "point": "D" - } - ], - "xRange": [ - -4, - 6 - ], - "yRange": [ - -6, - 2 - ] - } - }, - { - "path": [ - "پایه دوازدهم", - "فصل ۲: آشنایی با مقاطع مخروطی", - "دایره: نقاط و خطوط", - "تعیین رابطه بین دایره‌ها" - ], - "prompt": "دو دایره‌ی x² + (y − ۱)² = ۱ و (x − ۱)² + y² = ۱ در شکل کشیده شده‌اند. این دو دایره نسبت به هم چه وضعیتی دارند؟", - "type": "multiple_choice", - "choices": [ - "بیرون هم‌اند", - "در دو نقطه متقاطع‌اند", - "مماس‌اند", - "درون هم‌اند" - ], - "correct": 1, - "figure": { - "kind": "plane", - "title": "دو دایره", - "axes": true, - "grid": false, - "points": { - "C1": [ - 0, - 1 - ], - "C2": [ - 1, - 0 - ] - }, - "items": [ - { - "type": "circle", - "center": "C1", - "r": 1, - "color": "blue" - }, - { - "type": "circle", - "center": "C2", - "r": 1, - "color": "red" - } - ], - "xRange": [ - -2, - 3 - ], - "yRange": [ - -2, - 3 - ] - } - }, - { - "path": [ - "پایه دوازدهم", - "فصل ۲: آشنایی با مقاطع مخروطی", - "دایره: نقاط و خطوط", - "تعیین وضعیت خطوط نسبت به دایره" - ], - "prompt": "خط x + y = ۲ و دایره‌ی x² + y² = ۲ در شکل کشیده شده‌اند. وضعیت خط نسبت به دایره چیست؟", - "type": "multiple_choice", - "choices": [ - "خط دایره را در دو نقطه قطع می‌کند", - "خط بر دایره مماس است", - "خط خارج دایره است", - "نمی‌توان گفت" - ], - "correct": 1, - "figure": { - "kind": "plane", - "title": "خط و دایره", - "axes": true, - "grid": false, - "points": { - "O": [ - 0, - 0 - ] - }, - "items": [ - { - "type": "line", - "equation": "x + y = 2", - "color": "red" - }, - { - "type": "circle", - "center": "O", - "r": 1.414, - "color": "blue" - } - ], - "xRange": [ - -3, - 3 - ], - "yRange": [ - -3, - 3 - ] - } - }, { "path": [ "پایه دوازدهم", @@ -345227,7 +345021,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "بیضی و کانون‌ها", + "title": "", "axes": true, "grid": false, "points": { @@ -345292,7 +345086,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "بیضی", + "title": "", "axes": true, "grid": false, "points": {}, @@ -345340,7 +345134,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "بیضی و کانون‌ها", + "title": "", "axes": true, "grid": false, "points": { @@ -345405,7 +345199,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "سهمی y² = ۸x", + "title": "", "axes": true, "grid": false, "points": {}, @@ -345453,7 +345247,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "سهمی x² = ۸y", + "title": "", "axes": true, "grid": false, "points": {}, @@ -345494,7 +345288,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "سهمی x² = −۱۲y", + "title": "", "axes": true, "grid": false, "points": {}, @@ -345535,7 +345329,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "سهمی انتقال‌یافته", + "title": "", "axes": true, "grid": false, "points": {}, @@ -345583,7 +345377,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "سهمی رو به پایین", + "title": "", "axes": true, "grid": false, "points": {}, @@ -345624,7 +345418,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "رأس و خط هادی", + "title": "", "axes": true, "grid": false, "points": { @@ -345672,7 +345466,7 @@ "correct": 0, "figure": { "kind": "plane", - "title": "سهمی", + "title": "", "axes": true, "grid": false, "points": {}, @@ -345713,7 +345507,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "رأس و کانون", + "title": "", "axes": true, "grid": false, "points": { @@ -345770,7 +345564,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "بیضی", + "title": "", "axes": true, "grid": false, "points": { @@ -345835,7 +345629,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "بیضی با a = ۲b", + "title": "", "axes": true, "grid": false, "points": {}, @@ -345883,7 +345677,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "رأس و کانون", + "title": "", "axes": true, "grid": false, "points": { @@ -345940,7 +345734,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "وتر کانونی", + "title": "", "axes": true, "grid": false, "points": { @@ -346011,7 +345805,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "مقطع دیش", + "title": "", "axes": true, "grid": false, "points": { @@ -346091,7 +345885,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "بیضی و کانون‌ها", + "title": "", "axes": true, "grid": false, "points": { @@ -346156,7 +345950,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "بیضی", + "title": "", "axes": true, "grid": false, "points": { @@ -346221,7 +346015,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "سهمی x² = −۱۶y", + "title": "", "axes": true, "grid": false, "points": {}, @@ -346262,7 +346056,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "بیضی", + "title": "", "axes": true, "grid": false, "points": {}, @@ -346310,7 +346104,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "هذلولی", + "title": "", "axes": true, "grid": false, "points": {}, @@ -346372,7 +346166,7 @@ "correct": 2, "figure": { "kind": "solid", - "title": "مخروط", + "title": "", "shape": "cone", "dims": { "r": 2, @@ -346398,7 +346192,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دو خط", + "title": "", "axes": true, "grid": false, "points": {}, @@ -346442,7 +346236,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دو خط با شیب‌های متفاوت", + "title": "", "axes": true, "grid": false, "points": {}, @@ -346486,7 +346280,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "دو خط", + "title": "", "axes": true, "grid": false, "points": {}, @@ -346530,7 +346324,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دو خط موازی", + "title": "", "axes": true, "grid": false, "points": {}, @@ -346574,7 +346368,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دو نیروی عمود", + "title": "", "axes": true, "grid": false, "points": { @@ -346640,45 +346434,6 @@ ] } }, - { - "path": [ - "پایه دوازدهم", - "فصل ۳: بردارها", - "بردار و فضای سه‌بعدی", - "تعیین رابطه خطی صفحه با استفاده از معادله x=1" - ], - "prompt": "نمودار رابطه‌ی x = ۱ در صفحه‌ی مختصات رسم شده است. این نمودار چیست؟", - "type": "multiple_choice", - "choices": [ - "خط افقی گذرنده از (۰، ۱)", - "خط قائم گذرنده از (۱، ۰)", - "فقط نقطه‌ی (۱، ۰)", - "یک دایره" - ], - "correct": 1, - "figure": { - "kind": "plane", - "title": "x = ۱", - "axes": true, - "grid": false, - "points": {}, - "items": [ - { - "type": "vline", - "x": 1, - "color": "blue" - } - ], - "xRange": [ - -3, - 4 - ], - "yRange": [ - -3, - 3 - ] - } - }, { "path": [ "پایه دوازدهم", @@ -346697,7 +346452,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "مستطیل", + "title": "", "axes": true, "grid": false, "points": { @@ -346757,7 +346512,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "بردار a", + "title": "", "axes": true, "grid": false, "points": { @@ -346806,7 +346561,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دو بردار", + "title": "", "axes": true, "grid": false, "points": { @@ -346865,7 +346620,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "جمع دو بردار", + "title": "", "axes": true, "grid": false, "points": { @@ -346931,7 +346686,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "تفاضل دو بردار", + "title": "", "axes": true, "grid": false, "points": { @@ -346996,7 +346751,7 @@ "correct": 3, "figure": { "kind": "plane", - "title": "بردار", + "title": "", "axes": true, "grid": false, "points": { @@ -347063,7 +346818,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "دو بردار هم‌جهت", + "title": "", "axes": true, "grid": false, "points": { @@ -347124,7 +346879,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "مؤلفه‌های بردار", + "title": "", "axes": true, "grid": false, "points": { @@ -347191,7 +346946,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "تصویر قائم", + "title": "", "axes": true, "grid": false, "points": { @@ -347261,7 +347016,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "MN موازی BC", + "title": "", "axes": false, "grid": false, "points": { @@ -347349,7 +347104,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "قطرهای متوازی‌الاضلاع", + "title": "", "axes": false, "grid": false, "points": { @@ -347441,7 +347196,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "بردار AB", + "title": "", "axes": true, "grid": false, "points": { @@ -347498,7 +347253,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "گراف جهت‌دار", + "title": "", "axes": false, "grid": false, "points": { @@ -347581,7 +347336,7 @@ "correct": 0, "figure": { "kind": "plane", - "title": "گراف ۵ رأسی", + "title": "", "axes": false, "grid": false, "points": { @@ -347672,7 +347427,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "گراف ۳-منتظم", + "title": "", "axes": false, "grid": false, "points": { @@ -347801,7 +347556,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "همسایه‌های c", + "title": "", "axes": false, "grid": false, "points": { @@ -347906,7 +347661,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "گراف G", + "title": "", "axes": false, "grid": false, "points": { @@ -348003,7 +347758,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دور به طول ۵", + "title": "", "axes": false, "grid": false, "points": { @@ -348100,7 +347855,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "گراف ۶ رأسی", + "title": "", "axes": false, "grid": false, "points": { @@ -348217,7 +347972,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "گراف کامل K₄", + "title": "", "axes": false, "grid": false, "points": { @@ -348312,7 +348067,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "گراف ستاره", + "title": "", "axes": false, "grid": false, "points": { @@ -348417,7 +348172,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "گراف کامل K₅", + "title": "", "axes": false, "grid": false, "points": { @@ -348544,7 +348299,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "مسیر P₅", + "title": "", "axes": false, "grid": false, "points": { @@ -348635,7 +348390,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دور C₇", + "title": "", "axes": false, "grid": false, "points": { @@ -348760,7 +348515,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "گراف ستاره", + "title": "", "axes": false, "grid": false, "points": { @@ -348865,7 +348620,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دور C₆", + "title": "", "axes": false, "grid": false, "points": { @@ -348976,7 +348731,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "دور C₈", + "title": "", "axes": false, "grid": false, "points": { @@ -349115,7 +348870,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دور C₄", + "title": "", "axes": false, "grid": false, "points": { @@ -349198,7 +348953,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "سه یال جدا", + "title": "", "axes": false, "grid": false, "points": { @@ -349291,7 +349046,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "دور C₆", + "title": "", "axes": false, "grid": false, "points": { @@ -349402,7 +349157,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "سه چاه و سه خانه (K₃,₃)", + "title": "", "axes": false, "grid": false, "points": { @@ -349513,102 +349268,6 @@ ] } }, - { - "path": [ - "پایه دوازدهم", - "فصل ۱: تابع", - "تبدیل نمودار توابع (۱)", - "تبدیل نمودار توابع" - ], - "prompt": "نمودار آبی y = x² و نمودار قرمز y = x² + ۳ در شکل رسم شده‌اند. نمودار قرمز نسبت به آبی چگونه به‌دست آمده است؟", - "type": "multiple_choice", - "choices": [ - "۳ واحد به بالا", - "۳ واحد به پایین", - "۳ واحد به راست", - "۳ واحد به چپ" - ], - "correct": 0, - "figure": { - "kind": "plane", - "title": "y = x² و y = x² + ۳", - "axes": true, - "grid": false, - "points": {}, - "items": [ - { - "type": "function", - "expr": "x^2", - "from": -3.5, - "to": 3.5, - "color": "blue" - }, - { - "type": "function", - "expr": "x^2+3", - "from": -3.5, - "to": 3.5, - "color": "red" - } - ], - "xRange": [ - -4, - 4 - ], - "yRange": [ - -1, - 10 - ] - } - }, - { - "path": [ - "پایه دوازدهم", - "فصل ۱: تابع", - "تبدیل نمودار توابع (۱)", - "تابع درجه سوم، توابع یک‌نوا و بخش‌پذیری و تقسیم" - ], - "prompt": "نمودار آبی y = x² و نمودار قرمز y = (x + ۲)² در شکل رسم شده‌اند. نمودار قرمز نسبت به آبی چگونه جابه‌جا شده است؟", - "type": "multiple_choice", - "choices": [ - "۲ واحد به راست", - "۲ واحد به چپ", - "۲ واحد به بالا", - "۲ واحد به پایین" - ], - "correct": 1, - "figure": { - "kind": "plane", - "title": "y = x² و y = (x + ۲)²", - "axes": true, - "grid": false, - "points": {}, - "items": [ - { - "type": "function", - "expr": "x^2", - "from": -3, - "to": 3, - "color": "blue" - }, - { - "type": "function", - "expr": "(x+2)^2", - "from": -5, - "to": 1, - "color": "red" - } - ], - "xRange": [ - -6, - 4 - ], - "yRange": [ - -1, - 9 - ] - } - }, { "path": [ "پایه دوازدهم", @@ -349627,7 +349286,7 @@ "correct": 0, "figure": { "kind": "plane", - "title": "نمودار f", + "title": "", "axes": true, "grid": false, "points": {}, @@ -349682,7 +349341,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "y = sin x و y = ۳ sin x", + "title": "", "axes": true, "grid": false, "points": {}, @@ -349713,199 +349372,6 @@ "trig": true } }, - { - "path": [ - "پایه دوازدهم", - "فصل ۱: تابع", - "تبدیل نمودار توابع (۳)", - "تأثیر ضرب عددی k بر نمودار تابع" - ], - "prompt": "نمودار آبی y = x² و نمودار قرمز y = ۲x² در شکل رسم شده‌اند. نمودار قرمز نسبت به آبی چه تغییری کرده است؟", - "type": "multiple_choice", - "choices": [ - "کشیده‌شدن عمودی با ضریب ۲", - "فشرده‌شدن عمودی با ضریب ۲", - "انتقال به بالا", - "انتقال به راست" - ], - "correct": 0, - "figure": { - "kind": "plane", - "title": "y = f(x) و y = ۲f(x)", - "axes": true, - "grid": false, - "points": {}, - "items": [ - { - "type": "function", - "expr": "x^2", - "from": -2.5, - "to": 2.5, - "color": "blue" - }, - { - "type": "function", - "expr": "2*x^2", - "from": -2.5, - "to": 2.5, - "color": "red" - } - ], - "xRange": [ - -3, - 3 - ], - "yRange": [ - -1, - 9 - ] - } - }, - { - "path": [ - "پایه دوازدهم", - "فصل ۱: تابع", - "تبدیل نمودار توابع (۴)", - "مقایسه نمودارهای توابع سینوسی با فرکانس‌های متفاوت" - ], - "prompt": "نمودار آبی y = sin x و نمودار قرمز y = sin ۲x در شکل رسم شده‌اند. نمودار قرمز نسبت به آبی چه تغییری کرده است؟", - "type": "multiple_choice", - "choices": [ - "کشیده‌شدن افقی به دو برابر", - "فشرده‌شدن افقی به نصف", - "انتقال به راست", - "قرینه نسبت به محور x" - ], - "correct": 1, - "figure": { - "kind": "plane", - "title": "y = sin x و y = sin ۲x", - "axes": true, - "grid": false, - "points": {}, - "items": [ - { - "type": "function", - "expr": "sin(x)", - "from": 0, - "to": 6.28318, - "color": "blue" - }, - { - "type": "function", - "expr": "sin(2*x)", - "from": 0, - "to": 6.28318, - "color": "red" - } - ], - "xRange": [ - -0.5, - 6.8 - ], - "yRange": [ - -1.6, - 1.6 - ], - "trig": true - } - }, - { - "path": [ - "پایه دوازدهم", - "فصل ۱: تابع", - "تبدیل نمودار توابع (۴)", - "قرینه کردن نمودار تابع نسبت به محور y" - ], - "prompt": "نمودار آبی y = f(x) = √x و نمودار قرمز y = f(−x) در شکل رسم شده‌اند. نمودار قرمز نسبت به آبی چگونه است؟", - "type": "multiple_choice", - "choices": [ - "قرینه نسبت به محور x", - "قرینه نسبت به محور y", - "قرینه نسبت به مبدأ", - "انتقال به چپ" - ], - "correct": 1, - "figure": { - "kind": "plane", - "title": "y = √x و y = √(−x)", - "axes": true, - "grid": false, - "points": {}, - "items": [ - { - "type": "function", - "expr": "sqrt(x)", - "from": 0, - "to": 8, - "color": "blue" - }, - { - "type": "function", - "expr": "sqrt(-x)", - "from": -8, - "to": 0, - "color": "red" - } - ], - "xRange": [ - -9, - 9 - ], - "yRange": [ - -1, - 3.5 - ] - } - }, - { - "path": [ - "پایه دوازدهم", - "فصل ۱: تابع", - "تبدیل نمودار توابع (۵)", - "رسم و مقایسه نمودار توابع با تغییر علامت و قرینه" - ], - "prompt": "نمودار آبی y = f(x) = √x و نمودار قرمز y = −f(x) در شکل رسم شده‌اند. نمودار قرمز نسبت به آبی چگونه است؟", - "type": "multiple_choice", - "choices": [ - "قرینه نسبت به محور y", - "قرینه نسبت به مبدأ", - "قرینه نسبت به محور x", - "انتقال به پایین" - ], - "correct": 2, - "figure": { - "kind": "plane", - "title": "y = √x و y = −√x", - "axes": true, - "grid": false, - "points": {}, - "items": [ - { - "type": "function", - "expr": "sqrt(x)", - "from": 0, - "to": 8, - "color": "blue" - }, - { - "type": "function", - "expr": "-sqrt(x)", - "from": 0, - "to": 8, - "color": "red" - } - ], - "xRange": [ - -1, - 9 - ], - "yRange": [ - -3.5, - 3.5 - ] - } - }, { "path": [ "پایه دوازدهم", @@ -349924,7 +349390,7 @@ "correct": 0, "figure": { "kind": "plane", - "title": "دو قرینه‌سازی پیاپی", + "title": "", "axes": true, "grid": false, "points": {}, @@ -349954,54 +349420,6 @@ ] } }, - { - "path": [ - "پایه دوازدهم", - "فصل ۱: تابع", - "تابع درجه سوم، توابع یکنوا و بخش‌پذیری و تقسیم (۱)", - "رسم نمودار توابع چند جمله‌ای تغییر یافته" - ], - "prompt": "نمودار آبی y = x³ و نمودار قرمز y = (x + ۱)³ در شکل رسم شده‌اند. نمودار قرمز نسبت به آبی چگونه جابه‌جا شده است؟", - "type": "multiple_choice", - "choices": [ - "۱ واحد به راست", - "۱ واحد به چپ", - "۱ واحد به بالا", - "۱ واحد به پایین" - ], - "correct": 1, - "figure": { - "kind": "plane", - "title": "y = x³ و y = (x + ۱)³", - "axes": true, - "grid": false, - "points": {}, - "items": [ - { - "type": "function", - "expr": "x^3", - "from": -1.8, - "to": 1.8, - "color": "blue" - }, - { - "type": "function", - "expr": "(x+1)^3", - "from": -2.8, - "to": 0.8, - "color": "red" - } - ], - "xRange": [ - -3, - 3 - ], - "yRange": [ - -5, - 5 - ] - } - }, { "path": [ "پایه دوازدهم", @@ -350020,7 +349438,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "نمودار f", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350075,7 +349493,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "نمودار f", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350127,7 +349545,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "انتقال سهمی", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350175,7 +349593,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "سهمی", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350216,7 +349634,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "سهمی", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350257,7 +349675,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "y = √(۲ + x)", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350298,7 +349716,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "y = sin x", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350340,7 +349758,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "y = (۱/۲) sin x", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350382,7 +349800,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "y = ۳ sin ۲x − ۲", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350424,7 +349842,7 @@ "correct": 0, "figure": { "kind": "plane", - "title": "y = tan x", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350465,7 +349883,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "y = tan x", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350514,7 +349932,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "y = ۱ + ۲ sin(√۷ x)", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350555,7 +349973,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "تابع سینوسی", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350597,7 +350015,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "تابع سینوسی", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350639,7 +350057,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "sin x = ۰٫۵", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350687,7 +350105,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "y = ۲ cos ۶x", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350729,7 +350147,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "y = ۳ cos ۳x − ۵", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350770,7 +350188,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "y = ۷ cos x − ۳", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350812,7 +350230,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "y = ۲ cos x + ۱", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350854,7 +350272,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "tan x = −۱", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350916,7 +350334,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "cos ۲x = ۰٫۷۵", + "title": "", "axes": true, "grid": false, "points": {}, @@ -350964,7 +350382,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "f(x) = ۱/x", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351012,7 +350430,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "f(x) = ۱/|x|", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351060,7 +350478,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "f(x) = ۱/(x − ۲)", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351108,7 +350526,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "f(x) = ۲/|x − ۱|", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351156,7 +350574,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "f(x) = ۱/x²", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351204,7 +350622,7 @@ "correct": 3, "figure": { "kind": "plane", - "title": "f(x) = ۱/x²", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351252,7 +350670,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "g(x) = ۱/x", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351300,7 +350718,7 @@ "correct": 3, "figure": { "kind": "plane", - "title": "y = tan x", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351348,7 +350766,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "f(x) = (۲x − ۱)/(x + ۱)", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351396,7 +350814,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "f(x) = (−۴x − ۳)/(۴x + ۵)", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351444,7 +350862,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "f(x) = (۳x + ۴)/(۲x − ۲)", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351492,7 +350910,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "g(x) = (x³ + x)/(x³ − x)", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351562,7 +350980,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "خط PQ", + "title": "", "axes": true, "grid": false, "points": { @@ -351621,7 +351039,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "خط قاطع AB", + "title": "", "axes": true, "grid": false, "points": { @@ -351687,7 +351105,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "مماس در x = ۲", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351733,7 +351151,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "مماس در x = ۲", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351779,7 +351197,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "f(x) = |x − ۲|", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351820,7 +351238,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "نمودار f", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351870,7 +351288,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "f(x) = |x² − ۴|", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351911,7 +351329,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "نمودار f", + "title": "", "axes": true, "grid": false, "points": {}, @@ -351961,7 +351379,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "مسافت بر حسب زمان", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352007,7 +351425,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "مماس در x = −۳", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352053,7 +351471,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "y = x⁴ − ۴x²", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352094,7 +351512,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "f(x) = |x² − ۱|", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352135,7 +351553,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "f(x) = x³/۳ − x", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352176,7 +351594,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "f(x) = x⁴", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352217,7 +351635,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "f(x) = x³", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352258,7 +351676,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "g(x) = √x", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352299,7 +351717,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "g(x) = x³ + ۳x² + ۱", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352340,7 +351758,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "f(x) = x³ − ۳x + ۲", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352381,7 +351799,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "f(x) = ∛x", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352422,7 +351840,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "f(x) = ۴x³ − ۳۰x² + ۴۸x − ۱", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352463,7 +351881,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "f(x) = ۴x³ + ۶x² − ۲", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352504,7 +351922,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "f(x) = ۲x³ − ۱۸x² + ۴۸x − ۱", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352545,7 +351963,7 @@ "correct": 2, "figure": { "kind": "plane", - "title": "f(x) = ۳x³ − ۱۸x² − ۳x + ۱", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352586,7 +352004,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "A(x) = x(۲۴ − x)", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352627,7 +352045,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "V(x) = x(۱۲ − ۲x)²", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352668,7 +352086,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "f(x) = (x + ۲)/(x − ۱)", + "title": "", "axes": true, "grid": false, "points": {}, @@ -352716,7 +352134,7 @@ "correct": 2, "figure": { "kind": "space", - "title": "محورها و صفحه‌های مختصات", + "title": "", "axes": true, "points": { "A": [ @@ -352755,7 +352173,7 @@ "correct": 2, "figure": { "kind": "space", - "title": "نقطه در فضا", + "title": "", "axes": true, "points": { "P": [ @@ -352795,7 +352213,7 @@ "correct": 1, "figure": { "kind": "space", - "title": "فاصله از مبدأ", + "title": "", "axes": true, "points": { "P": [ @@ -352842,7 +352260,7 @@ "correct": 1, "figure": { "kind": "space", - "title": "فاصله‌ی دو نقطه", + "title": "", "axes": true, "points": { "A": [ @@ -352895,7 +352313,7 @@ "correct": 1, "figure": { "kind": "space", - "title": "قطر اتاق", + "title": "", "axes": true, "points": { "P": [ @@ -352924,42 +352342,6 @@ ] } }, - { - "path": [ - "پایه دوازدهم", - "فصل ۳: بردارها", - "بردارها در مختصات", - "تعیین مکان نقاط در دستگاه مختصات سه‌بعدی با توجه به معادلات صفحه" - ], - "prompt": "نقطه‌ی A(۰، ۵، ۰) در شکل رسم شده است. این نقطه روی کدام محور مختصات قرار دارد؟", - "type": "multiple_choice", - "choices": [ - "x", - "y", - "z", - "هیچ‌کدام" - ], - "correct": 1, - "figure": { - "kind": "space", - "title": "نقطه روی محور", - "axes": true, - "points": { - "A": [ - 0, - 5, - 0 - ] - }, - "items": [ - { - "type": "point", - "point": "A", - "label": "A(0,5,0)" - } - ] - } - }, { "path": [ "پایه دوازدهم", @@ -352978,7 +352360,7 @@ "correct": 1, "figure": { "kind": "space", - "title": "بردار a", + "title": "", "axes": true, "points": { "A": [ @@ -353002,42 +352384,6 @@ ] } }, - { - "path": [ - "پایه دوازدهم", - "فصل ۳: بردارها", - "طول و وسط پاره‌خط در فضا", - "نمایش نقاط با مختصات داده شده در دستگاه مختصات سه‌بعدی" - ], - "prompt": "نقطه‌ی Q(۰، −۱، −۲) در شکل رسم شده است. این نقطه روی کدام صفحه‌ی مختصات قرار دارد؟", - "type": "multiple_choice", - "choices": [ - "xy", - "xz", - "yz", - "هیچ‌کدام" - ], - "correct": 2, - "figure": { - "kind": "space", - "title": "نقطه روی صفحه", - "axes": true, - "points": { - "Q": [ - 0, - -1, - -2 - ] - }, - "items": [ - { - "type": "point", - "point": "Q", - "label": "Q(0,-1,-2)" - } - ] - } - }, { "path": [ "پایه دوازدهم", @@ -353056,7 +352402,7 @@ "correct": 1, "figure": { "kind": "space", - "title": "فاصله‌ی دو نقطه", + "title": "", "axes": true, "points": { "P": [ @@ -353109,7 +352455,7 @@ "correct": 1, "figure": { "kind": "space", - "title": "وسط پاره‌خط", + "title": "", "axes": true, "points": { "A": [ @@ -353161,7 +352507,7 @@ "correct": 1, "figure": { "kind": "space", - "title": "دو بردار", + "title": "", "axes": true, "points": { "A": [ @@ -353211,7 +352557,7 @@ "correct": 2, "figure": { "kind": "space", - "title": "بردارهای یکه", + "title": "", "axes": true, "points": { "I": [ @@ -353273,7 +352619,7 @@ "correct": 1, "figure": { "kind": "space", - "title": "ضرب خارجی", + "title": "", "axes": true, "points": { "A": [ @@ -353335,7 +352681,7 @@ "correct": 2, "figure": { "kind": "space", - "title": "متوازی‌السطوح", + "title": "", "axes": true, "points": { "A": [ @@ -353397,7 +352743,7 @@ "correct": 1, "figure": { "kind": "space", - "title": "سه بردار", + "title": "", "axes": true, "points": { "A": [ @@ -353459,7 +352805,7 @@ "correct": 1, "figure": { "kind": "space", - "title": "بردار AB", + "title": "", "axes": true, "points": { "A": [ @@ -353512,7 +352858,7 @@ "correct": 1, "figure": { "kind": "venn", - "title": "فوتبال و والیبال", + "title": "", "sets": [ "A", "B" @@ -353555,7 +352901,7 @@ "correct": 1, "figure": { "kind": "venn", - "title": "بخش‌پذیری بر ۲ و ۳", + "title": "", "sets": [ "A", "B" @@ -353598,7 +352944,7 @@ "correct": 1, "figure": { "kind": "venn", - "title": "بخش‌پذیری بر ۴ و ۷", + "title": "", "sets": [ "A", "B" @@ -353641,7 +352987,7 @@ "correct": 1, "figure": { "kind": "venn", - "title": "بخش‌پذیری بر ۲ و ۷", + "title": "", "sets": [ "A", "B" @@ -353684,7 +353030,7 @@ "correct": 1, "figure": { "kind": "table", - "title": "مربع لاتین ۳ × ۳", + "title": "", "headers": [ "۱", "۲", @@ -353722,7 +353068,7 @@ "correct": 1, "figure": { "kind": "plane", - "title": "مثلث تقسیم‌شده به ۹ مثلث", + "title": "", "axes": false, "grid": false, "points": { @@ -353810,6 +353156,343 @@ } ] } + }, + { + "path": [ + "پایه دوازدهم", + "فصل ۱: تابع", + "تبدیل نمودار توابع (۱)", + "تبدیل نمودار توابع" + ], + "prompt": "نمودار آبی y = x² و یک نمودار قرمز دیگر در شکل رسم شده‌اند. نمودار قرمز نسبت به نمودار آبی چگونه جابه‌جا شده است؟", + "type": "multiple_choice", + "choices": [ + "۳ واحد به بالا", + "۳ واحد به پایین", + "۳ واحد به راست", + "۳ واحد به چپ" + ], + "correct": 0, + "figure": { + "kind": "plane", + "title": "", + "axes": true, + "grid": false, + "points": {}, + "items": [ + { + "type": "function", + "expr": "x^2", + "from": -3.5, + "to": 3.5, + "color": "blue" + }, + { + "type": "function", + "expr": "x^2+3", + "from": -3.5, + "to": 3.5, + "color": "red" + } + ], + "xRange": [ + -4, + 4 + ], + "yRange": [ + -1, + 10 + ] + } + }, + { + "path": [ + "پایه دوازدهم", + "فصل ۱: تابع", + "تبدیل نمودار توابع (۱)", + "تابع درجه سوم، توابع یک‌نوا و بخش‌پذیری و تقسیم" + ], + "prompt": "نمودار آبی y = x² و یک نمودار قرمز دیگر در شکل رسم شده‌اند. نمودار قرمز نسبت به نمودار آبی چگونه جابه‌جا شده است؟", + "type": "multiple_choice", + "choices": [ + "۲ واحد به راست", + "۲ واحد به چپ", + "۲ واحد به بالا", + "۲ واحد به پایین" + ], + "correct": 1, + "figure": { + "kind": "plane", + "title": "", + "axes": true, + "grid": false, + "points": {}, + "items": [ + { + "type": "function", + "expr": "x^2", + "from": -3, + "to": 3, + "color": "blue" + }, + { + "type": "function", + "expr": "(x+2)^2", + "from": -5, + "to": 1, + "color": "red" + } + ], + "xRange": [ + -6, + 4 + ], + "yRange": [ + -1, + 9 + ] + } + }, + { + "path": [ + "پایه دوازدهم", + "فصل ۱: تابع", + "تبدیل نمودار توابع (۳)", + "تأثیر ضرب عددی k بر نمودار تابع" + ], + "prompt": "نمودار آبی y = x² و یک نمودار قرمز دیگر در شکل رسم شده‌اند. نمودار قرمز نسبت به نمودار آبی چه تغییری کرده است؟", + "type": "multiple_choice", + "choices": [ + "کشیده‌شدن عمودی با ضریب ۲", + "فشرده‌شدن عمودی با ضریب ۲", + "انتقال به بالا", + "انتقال به راست" + ], + "correct": 0, + "figure": { + "kind": "plane", + "title": "", + "axes": true, + "grid": false, + "points": {}, + "items": [ + { + "type": "function", + "expr": "x^2", + "from": -2.5, + "to": 2.5, + "color": "blue" + }, + { + "type": "function", + "expr": "2*x^2", + "from": -2.5, + "to": 2.5, + "color": "red" + } + ], + "xRange": [ + -3, + 3 + ], + "yRange": [ + -1, + 9 + ] + } + }, + { + "path": [ + "پایه دوازدهم", + "فصل ۱: تابع", + "تبدیل نمودار توابع (۴)", + "مقایسه نمودارهای توابع سینوسی با فرکانس‌های متفاوت" + ], + "prompt": "نمودار آبی y = sin x و یک نمودار قرمز دیگر در شکل رسم شده‌اند. نمودار قرمز نسبت به نمودار آبی چه تغییری کرده است؟", + "type": "multiple_choice", + "choices": [ + "کشیده‌شدن افقی به دو برابر", + "فشرده‌شدن افقی به نصف", + "انتقال به راست", + "قرینه نسبت به محور x" + ], + "correct": 1, + "figure": { + "kind": "plane", + "title": "", + "axes": true, + "grid": false, + "points": {}, + "items": [ + { + "type": "function", + "expr": "sin(x)", + "from": 0, + "to": 6.28318, + "color": "blue" + }, + { + "type": "function", + "expr": "sin(2*x)", + "from": 0, + "to": 6.28318, + "color": "red" + } + ], + "xRange": [ + -0.5, + 6.8 + ], + "yRange": [ + -1.6, + 1.6 + ], + "trig": true + } + }, + { + "path": [ + "پایه دوازدهم", + "فصل ۱: تابع", + "تبدیل نمودار توابع (۴)", + "قرینه کردن نمودار تابع نسبت به محور y" + ], + "prompt": "نمودار آبی y = f(x) = √x و یک نمودار قرمز دیگر در شکل رسم شده‌اند. نمودار قرمز نسبت به نمودار آبی چگونه است؟", + "type": "multiple_choice", + "choices": [ + "قرینه نسبت به محور x", + "قرینه نسبت به محور y", + "قرینه نسبت به مبدأ", + "انتقال به چپ" + ], + "correct": 1, + "figure": { + "kind": "plane", + "title": "", + "axes": true, + "grid": false, + "points": {}, + "items": [ + { + "type": "function", + "expr": "sqrt(x)", + "from": 0, + "to": 8, + "color": "blue" + }, + { + "type": "function", + "expr": "sqrt(-x)", + "from": -8, + "to": 0, + "color": "red" + } + ], + "xRange": [ + -9, + 9 + ], + "yRange": [ + -1, + 3.5 + ] + } + }, + { + "path": [ + "پایه دوازدهم", + "فصل ۱: تابع", + "تبدیل نمودار توابع (۵)", + "رسم و مقایسه نمودار توابع با تغییر علامت و قرینه" + ], + "prompt": "نمودار آبی y = f(x) = √x و یک نمودار قرمز دیگر در شکل رسم شده‌اند. نمودار قرمز نسبت به نمودار آبی چگونه است؟", + "type": "multiple_choice", + "choices": [ + "قرینه نسبت به محور y", + "قرینه نسبت به مبدأ", + "قرینه نسبت به محور x", + "انتقال به پایین" + ], + "correct": 2, + "figure": { + "kind": "plane", + "title": "", + "axes": true, + "grid": false, + "points": {}, + "items": [ + { + "type": "function", + "expr": "sqrt(x)", + "from": 0, + "to": 8, + "color": "blue" + }, + { + "type": "function", + "expr": "-sqrt(x)", + "from": 0, + "to": 8, + "color": "red" + } + ], + "xRange": [ + -1, + 9 + ], + "yRange": [ + -3.5, + 3.5 + ] + } + }, + { + "path": [ + "پایه دوازدهم", + "فصل ۱: تابع", + "تابع درجه سوم، توابع یکنوا و بخش‌پذیری و تقسیم (۱)", + "رسم نمودار توابع چند جمله‌ای تغییر یافته" + ], + "prompt": "نمودار آبی y = x³ و یک نمودار قرمز دیگر در شکل رسم شده‌اند. نمودار قرمز نسبت به نمودار آبی چگونه جابه‌جا شده است؟", + "type": "multiple_choice", + "choices": [ + "۱ واحد به راست", + "۱ واحد به چپ", + "۱ واحد به بالا", + "۱ واحد به پایین" + ], + "correct": 1, + "figure": { + "kind": "plane", + "title": "", + "axes": true, + "grid": false, + "points": {}, + "items": [ + { + "type": "function", + "expr": "x^3", + "from": -1.8, + "to": 1.8, + "color": "blue" + }, + { + "type": "function", + "expr": "(x+1)^3", + "from": -2.8, + "to": 0.8, + "color": "red" + } + ], + "xRange": [ + -3, + 3 + ], + "yRange": [ + -5, + 5 + ] + } } ] } \ No newline at end of file diff --git a/docs/content-authoring.md b/docs/content-authoring.md index 2f1026c..917ad7a 100644 --- a/docs/content-authoring.md +++ b/docs/content-authoring.md @@ -161,3 +161,22 @@ python tools/figures/batch.py merge batch.json # افزود چند شکل در یک صفحه، به `renderToString` با `identifierPrefix` یکتا برای هر شکل نیاز است، وگرنه `useId` در همه‌ی شکل‌ها یکی می‌شود و clipPathها روی هم می‌افتند و منحنی‌ها نصفه دیده می‌شوند (خطای ابزارِ آزمایش، نه اپ). فضای سه‌بعدی: `{"kind":"space",…}` با نقطه، بردار، پاره‌خط، چندضلعی (صفحه)، جعبه و خط‌چین‌های تصویر؛ تصویرِ مایلِ ثابت. + +### شکل نباید جواب را لو بدهد + +گزارشِ مالک (۲۰۲۶-۱۰-۱۵): سوالِ «نقطه‌ی A(۰، ۵، ۰) روی کدام محور است؟» شکلی داشت که نقطه را با همان مختصات روی محور +نشان می‌داد؛ شکل جواب را می‌داد. قاعده‌ها برای ساختنِ هر سوالِ شکل‌دار: + +1. **متنِ شکل** (`title`، برچسب‌ها، `label`) جواب یا چیزی مساوی با آن نباشد. عنوان را خالی بگذارید یا کلی («شکل»)؛ + عنوانِ «هرم با قاعده‌ی مربع» زیرِ سوالِ «مقطع چیست؟» و «دو دایره‌ی مماس» زیرِ «چند نقطه‌ی مشترک؟» جواب بود. +2. **چیزی را که سوال می‌پرسد نکشید.** اگر متن همه‌ی داده را داده (معادله، مختصات) و شکل نتیجه را هم نشان می‌دهد، + شکل کارِ دانش‌آموز را می‌کند. یا داده را فقط در شکل بگذارید (و متن آن را نگوید)، یا شکل را برنداشته سوال را بی‌شکل بگذارید. + مثال‌های بد: نقطه‌ای که «روی دایره است یا نه» و روی دایره کشیده شده؛ «لوزی با یک زاویه‌ی قائمه چه نام دارد» با مربع کشیده‌شده؛ + خطی که «وضعیتش نسبت به دایره» پرسیده می‌شود و مماس کشیده شده؛ «نمودار x = ۱ چیست» با همان خط. +3. **مقدار را روی مماس، `drop` و ابزارهایی که خودشان عدد می‌نویسند نگذارید** (ابزارِ `tangent` «شیب = …» را چاپ می‌کند؛ + مماس را با معادله‌ی خط بکشید). +4. هر سوالِ شکل‌دار را قبل از ادغام یک بار «به‌جای دانش‌آموز» بخوانید: اگر فقط با نگاه به شکل، بی‌هیچ فکر، جواب می‌شود، + دوباره بنویسید یا بی‌شکل بگذارید. + +اصلاحِ سوالِ منتشرشده: `tools/figures/apply_fixups.py` (حذف و خالی‌کردنِ عنوان، هم روی seed هم با `--db` روی سرور، +پس از `pg_dump`)؛ seed خودش چیزی را بازنویسی نمی‌کند. diff --git a/tools/figures/apply_fixups.py b/tools/figures/apply_fixups.py new file mode 100644 index 0000000..5991844 --- /dev/null +++ b/tools/figures/apply_fixups.py @@ -0,0 +1,79 @@ +""" +اصلاحِ سوال‌های شکل‌دارِ از قبل منتشرشده (seed هیچ‌وقت حذف یا بازنویسی نمی‌کند، پس اصلاح یک ابزارِ جدا می‌خواهد). + + python tools/figures/apply_fixups.py fixups.json # فقط فایل‌های seed محلی + venv/bin/python tools/figures/apply_fixups.py --db fixups.json # دیتابیسِ همین ماشین (روی سرور، پس از pg_dump) + +fixups.json: {"delete": [[path, prompt], ...], "blank_title": [[path, prompt], ...]} + delete سوال را کامل پاک می‌کند (پاسخ‌های ثبت‌شده‌اش هم می‌رود؛ فقط برای سوالِ تازه‌منتشرشده) + blank_title عنوانِ زیرِ شکل را خالی می‌کند (عنوان گاهی جوابِ سوال را لو می‌داد) +سوال با (path, prompt) شناخته می‌شود؛ هر کدام پیدا نشود فهرست می‌شود، بی‌صدا رد نمی‌شود. +""" +import json +import os +import sys + +ROOT = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +sys.path.insert(0, ROOT) + + +def key(path, prompt): + return (tuple(path), prompt.strip()) + + +def apply_seed(fx): + p = os.path.join(ROOT, 'content', 'seed', 'questions.json') + data = json.load(open(p)) + dele = {key(*x) for x in fx.get('delete', [])} + blank = {key(*x) for x in fx.get('blank_title', [])} + seen_d, seen_b, out = set(), set(), [] + for q in data['questions']: + k = key(q['path'], q['prompt']) + if k in dele: + seen_d.add(k) + continue + if k in blank and q.get('figure'): + q['figure']['title'] = '' + seen_b.add(k) + out.append(q) + data['questions'] = out + json.dump(data, open(p, 'w'), ensure_ascii=False, indent=1) + return dele - seen_d, blank - seen_b + + +def apply_db(fx): + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings') + import django + django.setup() + from content.models import Question + lessons = {} + from content.models import Lesson + for l in Lesson.objects.select_related('node__unit__grade'): + lessons[(l.node.unit.grade.title, l.node.unit.title, l.node.title, l.title)] = l.pk + miss_d, miss_b = set(), set() + for path, prompt in fx.get('delete', []): + lid = lessons.get(tuple(path)) + qs = Question.objects.filter(lesson_id=lid, prompt=prompt.strip()) if lid else Question.objects.none() + if not qs.exists(): + miss_d.add(key(path, prompt)) + else: + qs.delete() + for path, prompt in fx.get('blank_title', []): + lid = lessons.get(tuple(path)) + qs = list(Question.objects.filter(lesson_id=lid, prompt=prompt.strip())) if lid else [] + if not qs: + miss_b.add(key(path, prompt)) + for q in qs: + if q.figure: + q.figure = {**q.figure, 'title': ''} + q.save(update_fields=['figure']) + return miss_d, miss_b + + +if __name__ == '__main__': + args = [a for a in sys.argv[1:] if a != '--db'] + fx = json.load(open(args[0])) + miss_d, miss_b = (apply_db if '--db' in sys.argv else apply_seed)(fx) + print(f'deleted/blanked ok; not found: delete={len(miss_d)} blank_title={len(miss_b)}') + for k in list(miss_d)[:5] + list(miss_b)[:5]: + print(' missing:', k[1][:60])