Zum Inhalt
HALOWERK

Datenvertragswerk

exact bezier subdivision audit

Subdivide one planar Bezier curve with2..6integercontrolpoints[-20,20] at explicit rational t0..1 numerator0..denominator<=8. Return normalizedparameter,every intermediate deCasteljau triangle coordinate,and complete same-degree left/right child controlpolygons oriented from original start to split and split to original end. Every coordinate is an exact reduced signed-numerator/positive-denominator decimal-string pair;split point included. Endpoints t0/1,coincident controls and nonreduced.

POST https://datenvertrag.halowerk.com/v1/exact-bezier-subdivision-audit

Eingaben

Felder des veröffentlichten Eingabeschemas
FeldTypPflichtBeschreibung
control_pointsSiehe SchemaJa
tobjectJa
claimed_valueSiehe SchemaJa
Vollständiges Eingabeschema anzeigen
{
  "type": "object",
  "properties": {
    "control_points": {
      "anyOf": [
        {
          "type": "array",
          "maxItems": 6,
          "items": {
            "type": "array",
            "maxItems": 2,
            "items": {
              "type": "integer",
              "minimum": -20,
              "maximum": 20
            },
            "minItems": 2
          },
          "minItems": 2
        },
        {
          "type": "null"
        }
      ]
    },
    "t": {
      "type": "object",
      "properties": {
        "num": {
          "type": "integer",
          "minimum": 0,
          "maximum": 8
        },
        "den": {
          "type": "integer",
          "minimum": 1,
          "maximum": 8
        }
      },
      "required": [
        "num",
        "den"
      ],
      "additionalProperties": false
    },
    "claimed_value": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "degree": {
              "type": "integer",
              "minimum": 1,
              "maximum": 5
            },
            "parameter": {
              "type": "object",
              "properties": {
                "num": {
                  "type": "string",
                  "pattern": "^(0|-?[1-9][0-9]{0,15})$"
                },
                "den": {
                  "type": "string",
                  "pattern": "^[1-9][0-9]{0,15}$"
                }
              },
              "required": [
                "num",
                "den"
              ],
              "additionalProperties": false
            },
            "triangle": {
              "type": "array",
              "maxItems": 6,
              "items": {
                "type": "array",
                "maxItems": 6,
                "items": {
                  "type": "array",
                  "maxItems": 2,
                  "items": {
                    "type": "object",
                    "properties": {
                      "num": {
                        "type": "string",
                        "pattern": "^(0|-?[1-9][0-9]{0,15})$"
                      },
                      "den": {
                        "type": "string",
                        "pattern": "^[1-9][0-9]{0,15}$"
                      }
                    },
                    "required": [
                      "num",
                      "den"
                    ],
                    "additionalProperties": false
                  },
                  "minItems": 2
                }
              }
            },
            "left_control": {
              "type": "array",
              "maxItems": 6,
              "items": {
                "type": "array",
                "maxItems": 2,
                "items": {
                  "type": "object",
                  "properties": {
                    "num": {
                      "type": "string",
                      "pattern": "^(0|-?[1-9][0-9]{0,15})$"
                    },
                    "den": {
                      "type": "string",
                      "pattern": "^[1-9][0-9]{0,15}$"
                    }
                  },
                  "required": [
                    "num",
                    "den"
                  ],
                  "additionalProperties": false
                },
                "minItems": 2
              }
            },
            "right_control": {
              "type": "array",
              "maxItems": 6,
              "items": {
                "type": "array",
                "maxItems": 2,
                "items": {
                  "type": "object",
                  "properties": {
                    "num": {
                      "type": "string",
                      "pattern": "^(0|-?[1-9][0-9]{0,15})$"
                    },
                    "den": {
                      "type": "string",
                      "pattern": "^[1-9][0-9]{0,15}$"
                    }
                  },
                  "required": [
                    "num",
                    "den"
                  ],
                  "additionalProperties": false
                },
                "minItems": 2
              }
            },
            "split_point": {
              "type": "array",
              "maxItems": 2,
              "items": {
                "type": "object",
                "properties": {
                  "num": {
                    "type": "string",
                    "pattern": "^(0|-?[1-9][0-9]{0,15})$"
                  },
                  "den": {
                    "type": "string",
                    "pattern": "^[1-9][0-9]{0,15}$"
                  }
                },
                "required": [
                  "num",
                  "den"
                ],
                "additionalProperties": false
              },
              "minItems": 2
            }
          },
          "required": [
            "degree",
            "parameter",
            "triangle",
            "left_control",
            "right_control",
            "split_point"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "control_points",
    "t",
    "claimed_value"
  ],
  "additionalProperties": false
}

Originalschema öffnen

Veröffentlichtes Eingabebeispiel

{
  "control_points": [
    [
      0,
      0
    ],
    [
      4,
      8
    ],
    [
      10,
      0
    ]
  ],
  "t": {
    "num": 1,
    "den": 2
  },
  "claimed_value": {
    "degree": 2,
    "parameter": {
      "num": "1",
      "den": "2"
    },
    "triangle": [
      [
        [
          {
            "num": "0",
            "den": "1"
          },
          {
            "num": "0",
            "den": "1"
          }
        ],
        [
          {
            "num": "4",
            "den": "1"
          },
          {
            "num": "8",
            "den": "1"
          }
        ],
        [
          {
            "num": "10",
            "den": "1"
          },
          {
            "num": "0",
            "den": "1"
          }
        ]
      ],
      [
        [
          {
            "num": "2",
            "den": "1"
          },
          {
            "num": "4",
            "den": "1"
          }
        ],
        [
          {
            "num": "7",
            "den": "1"
          },
          {
            "num": "4",
            "den": "1"
          }
        ]
      ],
      [
        [
          {
            "num": "9",
            "den": "2"
          },
          {
            "num": "4",
            "den": "1"
          }
        ]
      ]
    ],
    "left_control": [
      [
        {
          "num": "0",
          "den": "1"
        },
        {
          "num": "0",
          "den": "1"
        }
      ],
      [
        {
          "num": "2",
          "den": "1"
        },
        {
          "num": "4",
          "den": "1"
        }
      ],
      [
        {
          "num": "9",
          "den": "2"
        },
        {
          "num": "4",
          "den": "1"
        }
      ]
    ],
    "right_control": [
      [
        {
          "num": "9",
          "den": "2"
        },
        {
          "num": "4",
          "den": "1"
        }
      ],
      [
        {
          "num": "7",
          "den": "1"
        },
        {
          "num": "4",
          "den": "1"
        }
      ],
      [
        {
          "num": "10",
          "den": "1"
        },
        {
          "num": "0",
          "den": "1"
        }
      ]
    ],
    "split_point": [
      {
        "num": "9",
        "den": "2"
      },
      {
        "num": "4",
        "den": "1"
      }
    ]
  }
}

Ergebnis & Dokumentation

Maschinenlesbare Dokumentation dieses Hubs

Quelle dieser Seite: der veröffentlichte HALOWERK-Katalog. Stand: 2026-11-07, 02:42 UTC.

Weitere Endpunkte dieses Hubs

Alle Endpunkte dieses Hubs →