Saltire Diagonal Intersection Point Solver

Intersect actual finite straight saltire centerlines in one planar frame; no automatic outline extraction.

Description

A saltire-like crossing can be represented by two finite line segments.

A saltire-like crossing can be represented by two finite line segments.1

A meaningful crossing must lie on both supplied segments rather than only on their infinite extensions.

When to use Saltire Diagonal Intersection Point Solver

Use this tool to calculate or review the supplied observations under the stated rules. Establish the source tradition, viewing frame, coordinate units and independently annotated features.

How to use Saltire Diagonal Intersection Point Solver and understand its results

  1. Establish the source tradition, viewing frame, coordinate units and independently annotated features.
  2. Enter segmentAStart, segmentAEnd, segmentBStart, segmentBEnd, using the field meanings and rules below, then run the tool.
  3. Read result.intersection, result.firstSegmentFraction, result.secondSegmentFraction, using the output meanings and calculation rules below.
  4. Correct any reported input issue and run again. Before using a successful result, check the stated units, signs, reference scope and observation coverage.
Input fieldMeaningValue typeRequirement
segmentAStartSegment a startlist of numberRequired
segmentAEndSegment a endlist of numberRequired
segmentBStartSegment b startlist of numberRequired
segmentBEndSegment b endlist of numberRequired

Provide four coordinate pairs with exactly two finite components each. Solve the two parametric segment equations. Reject when the determinant magnitude is below 1e−12 or either intersection parameter lies outside [0,1]. Return the intersection coordinates and both segment parameters; endpoint intersections are accepted.

A(t)=A0+t(A1−A0); B(u)=B0+u(B1−B0); solve A(t)=B(u), 0≤t,u≤1

Use the matching field units and the exact boundary, ordering and reference rules above.

Output fieldMeaningValue type
resultCalculated observation or referenceobject
result.intersectionintersectionlist
result.firstSegmentFractionfirst Segment Fraction; dimensionless fraction, not a percentnumber
result.secondSegmentFractionsecond Segment Fraction; dimensionless fraction, not a percentnumber
json
{
  "input": {
    "segmentAStart": [
      0,
      0
    ],
    "segmentAEnd": [
      100,
      100
    ],
    "segmentBStart": [
      0,
      100
    ],
    "segmentBEnd": [
      100,
      0
    ]
  },
  "output": {
    "result": {
      "intersection": [
        50,
        50
      ],
      "firstSegmentFraction": 0.5,
      "secondSegmentFraction": 0.5
    }
  }
}

Limitations and assumptions

The determinant tolerance is absolute and depends on the supplied coordinate scale. Parallel or near-parallel segments and intersections outside their finite extents fail; shield clipping is not modeled.

Missing required fields, unknown fields, wrong types and violated rules return input issues. Numeric values and outputs must be finite. Lists and matrices must be dense, without missing cells. Numeric lists allow at most 10000 entries; ordinary string lists allow at most 128 strings of 128 UTF-16 units each; numeric matrices allow at most 128 rows and 128 columns, subject to narrower requirements above. Extremely large composite outputs are rejected.

Alternative or Complementary methods

For a related step, use Per Bend Sinister Diagonal Path Generator: A per-bend-sinister division can be represented as a diagonal across a rectangular envelope. For a complementary comparison, use Bend Diagonal Angle Geometry Checker (45°): A diagonal's angle follows from its horizontal run and vertical rise in a specified coordinate model.

References

  1. Saltire Diagonal Intersection Point Solver — tool.io

Similar or alternative tools

Don't forget to set a bookmark for tool.io!
Privacy | Imprint | Cookies