// SPDX-License-Identifier: MIT // Copyright (c) 2026 Incoprea // Ellipse position and tangent heading // Not compiled or tested in-world // Setup: Place in a spare prim. Set semi-axes and parameter degrees. Owner touch prints results without altering the scene. // Stop / restore: Disable or remove. No prim properties are changed. // Notes: Parameter angle is not the same as the point’s polar bearing except on a circle. // License: see LICENSE in this distribution. // Original Incoprea. MIT. Owner-only calculation. float A=5.0; float B=2.0; float ANGLE=40.0; default { touch_start(integer detectedCount) { if (llDetectedKey(0)!=llGetOwner()) return; if(A<=0.0||B<=0.0) { llOwnerSay("Positive semi-axes required."); return; } float t=ANGLE*DEG_TO_RAD; vector point=; vector direction=<-A*llSin(t),B*llCos(t),0.0>; llOwnerSay("Point="+(string)point+"; tangent heading="+(string)(llAtan2(direction.y,direction.x)*RAD_TO_DEG)); } }