องค์ประกอบ LaTeX

องค์ประกอบ LaTeX ใช้ในการแสดงสูตรคณิตศาสตร์และนิพจน์โดยใช้ไวยากรณ์ LaTeX รองรับการเปลี่ยนเนื้อหาที่อิงจากเฟรมพร้อมการเปลี่ยนแปลงที่กำหนดค่าได้

องค์ประกอบ LaTeX จะแบ่งปันฟิลด์ทั่วไปจาก องค์ประกอบพื้นฐาน และ องค์ประกอบการดู

คุณสมบัติ LaTeX

ทรัพย์สินประเภทจำเป็นตัวอย่างช่วงค่าคำอธิบาย
typestringtrue-LaTeXประเภทขององค์ประกอบ สำหรับองค์ประกอบ LaTeX นี้จะเป็น "LaTeX" เสมอ
framesarraytrue--อาร์เรย์ของเฟรม LaTeX แต่ละเฟรมกำหนดนิพจน์ LaTeX ที่จะแสดงในช่วงเวลาที่เฉพาะเจาะจง
displayModebooleanfalse--ว่าจะเรนเดอร์ในโหมดการแสดงผล (ระดับบล็อก, จัดกลาง) หรือโหมดในบรรทัด
detailnumberfalse--ระดับรายละเอียดการเรนเดอร์ ค่าที่สูงกว่าจะผลิตเส้นโค้งที่เรียบเนียนมากขึ้น
targetWidthnumberfalse--ความกว้างเป้าหมายสำหรับเนื้อหา LaTeX ที่เรนเดอร์ เป็นพิกเซล
colorstringfalse--สีของข้อความ LaTeX ที่เรนเดอร์ ในรูปแบบฮีซ

วัตถุเฟรม

แต่ละรายการในอาร์เรย์ frames จะกำหนดนิพจน์ LaTeX และช่วงเวลาที่จะแสดง:

ทรัพย์สินประเภทจำเป็นตัวอย่างช่วงค่าคำอธิบาย
latexstringtrueE = mc^2-สตริงนิพจน์ LaTeX ที่จะเรนเดอร์
startnumbertrue->= 0เวลาที่เริ่มต้นของเฟรมนี้สัมพันธ์กับองค์ประกอบ เป็นวินาที
endnumbertrue-> startเวลาสิ้นสุดของเฟรมนี้สัมพันธ์กับองค์ประกอบ เป็นวินาที ต้องมากกว่าจุดเริ่มต้น
transitionobjectfalse--เอฟเฟกต์การเปลี่ยนแปลงเมื่อเปลี่ยนไปยังเฟรมนี้
styleobjectfalse--การเขียนทับสไตล์ต่อเฟรมสำหรับสี, displayMode, และ targetWidth

วัตถุการเปลี่ยนแปลง:

  • type (string) - ประเภทการเปลี่ยนแปลง: 'fade', 'instant', หรือ 'morph' ค่าเริ่มต้น: 'instant'
  • duration (number) - ระยะเวลาของการเปลี่ยนแปลงเป็นวินาที ค่าเริ่มต้น: 0.5

วัตถุสไตล์ (การเขียนทับต่อเฟรม):

  • color (string) - เขียนทับสีระดับองค์ประกอบสำหรับเฟรมนี้
  • displayMode (boolean) - เขียนทับโหมดการแสดงผลสำหรับเฟรมนี้
  • targetWidth (number) - เขียนทับความกว้างเป้าหมายสำหรับเฟรมนี้

ตัวอย่าง

เฟรมเดียว LaTeX

latexElement.json
 
{
  "id": "latex-001",
  "type": "LaTeX",
  "start": 0,
  "duration": 5,
  "trackIndex": 0,
  "x": 200,
  "y": 300,
  "width": 400,
  "height": 100,
  "anchorX": 200,
  "anchorY": 50,
  "rotation": 0,
  "scaleX": 1,
  "scaleY": 1,
  "alpha": 1,
  "color": "#000000",
  "displayMode": true,
  "targetWidth": 400,
  "frames": [
    {
      "latex": "E = mc^2",
      "start": 0,
      "end": 5
    }
  ]
}

หลายเฟรมพร้อมการเปลี่ยนแปลง

latexMultiFrame.json
 
{
  "id": "latex-002",
  "type": "LaTeX",
  "start": 0,
  "duration": 10,
  "trackIndex": 0,
  "x": 200,
  "y": 300,
  "width": 500,
  "height": 120,
  "anchorX": 250,
  "anchorY": 60,
  "rotation": 0,
  "scaleX": 1,
  "scaleY": 1,
  "alpha": 1,
  "color": "#1a1a1a",
  "displayMode": true,
  "targetWidth": 500,
  "frames": [
    {
      "latex": "f(x) = ax^2 + bx + c",
      "start": 0,
      "end": 5,
      "transition": {
        "type": "fade",
        "duration": 0.5
      }
    },
    {
      "latex": "x = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}",
      "start": 5,
      "end": 10,
      "transition": {
        "type": "morph",
        "duration": 0.8
      }
    }
  ]
}

หมายเหตุ

  • องค์ประกอบ LaTeX ใช้การเรนเดอร์แบบเวกเตอร์เพื่อให้ผลลัพธ์ที่คมชัดในทุกขนาด
  • อาร์เรย์ frames ต้องมีเฟรมอย่างน้อยหนึ่งเฟรมที่มีสตริง latex ที่ถูกต้อง
  • ช่วงเวลาเฟรม (start ถึง end) ควรครอบคลุมระยะเวลาขององค์ประกอบเพื่อการแสดงผลอย่างต่อเนื่อง
  • การเปลี่ยนแปลง morph สร้างอนิเมชันที่ราบรื่นระหว่างนิพจน์ LaTeX สองตัว