util.IsPointInCone

  boolean util.IsPointInCone( Vector point, Vector coneOrigin, Vector coneAxis, number coneSine, number coneLength )

Açıklama

Bir noktanın bir koni içinde olup olmadığını döndürür.

Argümanlar

1 Vector point
Test edilecek noktanın konumu.
2 Vector coneOrigin
Koninin tepe noktasının konumu.
3 Vector coneAxis
Koninin yönü.
4 number coneSine
Koninin açısının sinüsü.
5 number coneLength
Koninin ekseninin uzunluğu.

Döndürülen Değerler

1 boolean
Eğer nokta koni içindeyse true, değilse false döndürür.

Örnek

function ENT:Draw() local pos = self:GetPos() local point = Vector( 0, 0, 0 ) local sphereRad = 20 local height = 100 local angle = 45 --[[derece]] / 180 * math.pi -- radyana çevrildi local size = math.tan( angle ) * height local segs = 32 local is = util.IsPointInCone( point, pos, self:GetUp(), math.cos( angle ), height ) local is2 = util.IsSphereIntersectingCone( point, sphereRad, pos, self:GetUp(), math.sin( angle ), math.cos( angle ) ) -- sonsuz yükseklik local precalc = 1/segs * math.pi * 2 local center = pos for i = 1, segs do local pos1 = pos + math.sin( i * precalc ) * size * self:GetForward() + math.cos( i * precalc ) * size * self:GetRight() + self:GetUp() * height local pos2 = pos + math.sin( (i-1) * precalc ) * size * self:GetForward() + math.cos( (i-1) * precalc ) * size * self:GetRight() + self:GetUp() * height render.DrawLine( pos2, pos1, is and Color( 0, 255, 0 ) or Color( 255, 0, 0 ) ) render.DrawLine( pos2, center, is and Color( 0, 255, 0 ) or Color( 255, 0, 0 ) ) end render.DrawLine( pos, point, is and Color( 0, 255, 0 ) or Color( 255, 0, 0 ) ) debugoverlay.Sphere( point, sphereRad,0.01, is2 and Color( 0, 255, 0 ) or Color( 255, 0, 0 ) ) end

Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord