Difference between revisions of "MIST getRandPointInCircle"
From DCS World Wiki - Hoggitworld.com
m (Acidictadpole moved page MIST getRandomPointInCircle to MIST getRandPointInCircle) |
|||
Line 5: | Line 5: | ||
|vNum = Mist 2.0 | |vNum = Mist 2.0 | ||
− | |desc= Returns a randomly generated vec2 coordinate within the specified radius around the center of vec 2 or vec3 point given. If the optional variable innerRadius is given the random point will be generated that has a minimum distance of innerRadius and a maximum distance of radius from the point. | + | |desc= Returns a randomly generated vec2 coordinate within the specified radius around the center of vec 2 or vec3 point given. If the optional variable innerRadius is given the random point will be generated that has a minimum distance of innerRadius and a maximum distance of radius from the point. |
+ | |||
+ | The optional values maxA and minA can be used to limit the possible area of a circle that the random point is returned within. Think of a pizza slice or Pacman as the shape that can be returned. '''maxA and minA are defined in degrees'''. | ||
+ | |||
+ | maxA is optional. If not present then it assumes the shape is a circle. | ||
+ | minA is optional. If not present then the range will assume minA is 0 (North) to whatever maxA is set to if present. | ||
|rtnType= vec2 | |rtnType= vec2 | ||
Line 33: | Line 38: | ||
|optName1= innerRadius | |optName1= innerRadius | ||
− | |optType2= | + | |optType2= number |
− | |optName2= | + | |optName2= maxA |
− | |optType3= | + | |optType3= number |
− | |optName3= | + | |optName3= minA |
|optType4= | |optType4= | ||
Line 66: | Line 71: | ||
end | end | ||
</code> | </code> | ||
− | |notes= Used within: [[groupToRandomZone]], [[groupRandomDistSelf]], [[groupToRandomPoint]] | + | |
+ | |||
+ | The following will generate a point based off the heading of a unit so that the new point is offset up to 90 degrees from the current heading of the unit. | ||
+ | |||
+ | local u = Unit.getByName('whatever') | ||
+ | local headingDeg = math.deg(mist.getHeading(u, true)) | ||
+ | local newPoint = mist.getRandPointInCircle(u:getPoint(), 20000, 10000, headingDeg + 90, headingDeg - 90) | ||
+ | |||
+ | |notes= Used within: [[MIST_groupToRandomZone|groupToRandomZone]], [[MIST_groupRandomDistSelf|groupRandomDistSelf]], [[MIST_groupToRandomPoint|groupToRandomPoint]] | ||
|funcs= {{ListOfMistGeneralPurposeFuncs}} | |funcs= {{ListOfMistGeneralPurposeFuncs}} | ||
}} | }} | ||
[[Category: MIST|getRandomPointInCircle]] | [[Category: MIST|getRandomPointInCircle]] |
Revision as of 22:57, 3 June 2021
mist.getRandPointInCircle
Added with: Mist 2.0 |
Description |
Returns a randomly generated vec2 coordinate within the specified radius around the center of vec 2 or vec3 point given. If the optional variable innerRadius is given the random point will be generated that has a minimum distance of innerRadius and a maximum distance of radius from the point.
The optional values maxA and minA can be used to limit the possible area of a circle that the random point is returned within. Think of a pizza slice or Pacman as the shape that can be returned. maxA and minA are defined in degrees. maxA is optional. If not present then it assumes the shape is a circle. minA is optional. If not present then the range will assume minA is 0 (North) to whatever maxA is set to if present. |
Syntax |
vec2 mist.getRandPointInCircle(table vec2/vec3 ,number radius , number innerRadius ,number maxA ,number minA ) |
Valid Input Values: |
vec2/vec3 = valid vec2/3 table
radius = any positive number innerRadius = any positive number less than radius |
Return value: |
vec2 |
Return example: |
Template:Vec2 |
Usage Examples: |
The following code will deploy a smoke marker randomly inside a zone.
end
local u = Unit.getByName('whatever') local headingDeg = math.deg(mist.getHeading(u, true)) local newPoint = mist.getRandPointInCircle(u:getPoint(), 20000, 10000, headingDeg + 90, headingDeg - 90) |
Notes: |
Used within: groupToRandomZone, groupRandomDistSelf, groupToRandomPoint |
Related Functions |
makeUnitTable, getRandPointInCircle, getRandomPointInZone, getRandomPointInPoly, isTerrainValid, terrainHeightDiff, getUnitsInZones, getUnitsInMovingZones, pointInPolygon, getUnitsInPolygon, getDeadMapObjsInZones, getDeadMapObjsInPolygonZone, getUnitsLOS, random, randomizeNumTable, getAvgPoint, getQFE, getWindBearingAndVel, getPathLength, getPathInSegments, getPointAtDistanceOnPath, projectPoint, getGroupsByAttribute, , getUnitsByAttribute, mapValue, |