我有一个 3d 游戏,我将在其中创建一个用作屏幕的矩形,并且游戏本身使用向量到位置。所以我将创建一个矩形,并且只有这些参数可用:
起始位置 -> 向量 (x,y,z)。对象(x,y,z)的角度(旋转)。矩形的大小。
现在还需要将对象旋转到右侧,以便他们也使用天使(x,y,z)。
例子:
position:-381.968750 -28.653845 -12702.185547
angle: -0.000 90.000 90.000
我要创造的东西有点难,但想法很简单。
我选择了 2 个完全不同的位置和角度,并将从第一个向量到第二个向量创建一个矩形。
我只能用起点和角度创建一个矩形。我可以将大小设置为 (x,y)
所以我现在将插入 2 个具有 2 个不同角度的位置(向量)
矩形将具有第一个和第二个角度之间的中间值,例如 (90 和 0) -> 45
矩形将从起始向量开始,并以他自己的大小结束,所以我没有机会直接使用结束向量。
照片上的传奇:
绿色=>开始和结束位置(向量)。
红色 => 标记区域。
蓝色 => 我将如何拥有矩形。
aem_point = vgui.Create( "AEM.Main.Panel" )
if IsValid(aem_point) then
aem_point:SetSize( 2,2 ) -- <-the size that i can set
aem_point:SetPos( 0, 0 )
aem_ph = vgui.Create( "DHTML", aem_point )
aem_ph:SetSize( aem_point:GetSize() )
aem_ph:SetPos(aem_point:GetPos())
aem_ph:SetVisible( true )
aem_ph:SetHTML([[
<html>
<body style="margin:0px;padding:0px;font-size:20px;color:red;border-style: solid;border-color: #ff0000;background-color:rgba(255,0,0,0.1);">
</body>
</html>
]] )
end
hook.Add( "PostDrawOpaqueRenderables", "DrawSample3D2DFrame" .. math.random(), function()
if first and dat_finish then
vgui.Start3D2D( input_position, input_angle, 1 ) -- <-and position&vec
aem_point:Paint3D2D()
vgui.End3D2D()
end
end )