שדות זווית

שדה זווית שומר מספר בתור הערך שלו ומחרוזת בתור הטקסט שלו. הערך הוא מספר בין 0 ל-360 (הטווח הזה ניתן לשינוי), והטקסט יכול להיות כל מחרוזת שהוזנה בעורך שלו.

שדה זווית

שדה זווית עם עורך

שדה זווית מכווץ

יצירה

JSON

{
  "type": "example_angle",
  "message0": "angle: %1",
  "args0": [
    {
      "type": "field_angle",
      "name": "FIELDNAME",
      "angle": 90
    }
  ]
}

JavaScript

Blockly.Blocks['example_angle'] = {
  init: function() {
    this.appendDummyInput()
        .appendField('angle:')
        .appendField(new Blockly.FieldAngle(90), 'FIELDNAME');
  }
};

בנאי הזווית מקבל ערך אופציונלי וvalidator אופציונלי. אפס משמש כערך ברירת המחדל אם לא הוזן ערך, או אם לא הוקצה ערך למספר.

עריכה טורית

JSON

ה-JSON של שדה זווית נראה כך:

{
  "fields": {
    "FIELDNAME": 0
  }
}

כאשר FIELDNAME הוא מחרוזת שמפנה לשדה זווית, והערך הוא הערך שיש להחיל על השדה. הערך פועל לפי אותם כללים כמו הערך של ה-constructor.

XML

ה-XML של שדה זווית נראה כך:

<field name="FIELDNAME">0</field>

במאפיין name יש מחרוזת שמפנה לשדה זווית, והטקסט הפנימי הוא הערך שצריך להחיל על השדה. ערך הטקסט הפנימי פועל לפי אותם כללים כמו הערך של ה-constructor.

התאמה אישית

הצמדה

המאפיין Blockly.FieldAngle.ROUND משנה את הערכים שמשתנה בוחר הזווית כשמשתמשים בעכבר.

לפניכם דוגמה עם ערך ROUND של 70:

שדה זוויתי עם ערך ROUND של 70

ערך ברירת המחדל של המאפיין ROUND הוא 15. אם רוצים להשבית את מצב ההצמדה, הגדירו אותו ל-0.

זהו נכס גלובלי, לכן הוא ישנה את כל שדות הזוויות לאחר הגדרתו.

כיוון

המאפיין Blockly.FieldAngle.CLOCKWISE משנה את הכיוון שמוביל לעלייה בערך הזווית. אם מגדירים את הערך כ-true, מגדילים את הזווית כשזזים את הבורר בכיוון השעון. אם מגדירים אותו לערך false, מגדילים את הזווית כשמכוונים נגד כיוון השעון.

CLOCKWISE מוגדר ל-True

שדה זווית שבו CLOCKWISE מוגדר ל-true.

CLOCKWISE מוגדר ל-False

שדה זווית שבו CLOCKWISE מוגדר כ-False

ברירת המחדל של המאפיין CLOCKWISE היא false, כלומר תנועה נגד כיוון השעון תגדיל את הזווית.

זהו נכס גלובלי, לכן הוא ישנה את כל שדות הזוויות לאחר הגדרתו.

מיקום אפס

המאפיין Blockly.FieldAngle.OFFSET קובע את המיקום של 0 מעלות. כברירת מחדל, אפס מעלות מיושרת לציר ה-x החיובי (לסמוך לימין) ואז המאפיין הזה "מקזז" את המיקום הזה במספר מעלות.

בוחר הזווית לאפס מימין

בוחר זווית אפס למעלה

ברירת המחדל של המאפיין OFFSET היא 0, כלומר אפס מעלות מיושרת לציר ה-x החיובי.

זהו נכס גלובלי ולכן הוא ישנה את כל שדות הזוויות לאחר הגדרתו.

טווח

המאפיין Blockly.FieldAngle.WRAP קובע את טווח הערכים. טווח הערכים שווה ל-(-360 + WRAP, WRAP). כלומר, הערך של WRAP 360 נותן טווח של (0, 359.9) והערך WRAP של 180 יתן טווח של (-179.9, 180).

בוחר זווית עם ערך גלישת טקסט של 180

ערך ברירת המחדל של המאפיין WRAP הוא 360, כלומר הטווח של השדה הוא (0, 359.9).

זהו נכס גלובלי ולכן הוא ישנה את כל שדות הזוויות לאחר הגדרתו.

הגודל של בוחר הזווית

המאפיין Blockly.FieldAngle.HALF משנה את הגודל של בוחר הזווית. הערך הזה מגדיר את הרדיוס של המעגל החיצוני בפיקסלים.

בוחר זווית עם גודל ברירת המחדל של העורך

בוחר זווית עם כלי עריכה גדול

ערך ברירת המחדל של המאפיין HALF הוא 50.

זהו נכס גלובלי ולכן הוא ישנה את כל שדות הזוויות לאחר הגדרתו.

אמצעי תחבורה נפוצים

אפשר להשתמש בכיוון ובמיקום האפס יחד כדי ליצור שילובים משעשעים. הנה שתי שיטות נפוצות:

מד זווית

0 מעלות זה ימין, 90 מעלות זה למעלה.

Blockly.FieldAngle.CLOCKWISE = false;
Blockly.FieldAngle.OFFSET = 0;

בוחר זווית מוגדר כמד זווית

מצפן

0 מעלות למעלה, 90 מעלות זה ימין.

Blockly.FieldAngle.CLOCKWISE = true;
Blockly.FieldAngle.OFFSET = 90;

בוחר זווית מוגדר כמצפן

יצירת כלי לתיקוף זווית

הערך של שדה זווית הוא מספר, ולכן כל מאמת צריך לקבל מספר ולהחזיר מספר, null או undefined.

לפניכם דוגמה לכלי תיקוף שמאלץ את הערך להיות מכפלה של 30:

function(newValue) {
    return Math.round(newValue / 30) * 30;
}

בוחר זווית עם מאמת

שימו לב שהמאפיין [ROUND](#snapping) של שדה הזווית עדיין מוגדר ל-15, כך שהרכיבים הגרפיים בשדה מציגים כפולות של 15, במקום 30.