matlab 雷达扫描,请问这中雷达扫描图,用unity如何实现,真的很需要

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

源码

//画圆(其中一个圆)

using UnityEngine;

public class CircleRenderer : MonoBehaviour

{

private LineRenderer lineRenderer;

private void Start()

{

lineRenderer = GetComponent();

deltaAngle = 360 / pointNum;

posArray = new Vector3[pointNum + 1];

float angle = 0;

for (int i = 0; i < pointNum; i++)

{

float x = R * Mathf.Cos((90 - angle) / 180 * Mathf.PI);

float y = R * Mathf.Sin((90 - angle) / 180 * Mathf.PI);

posArray[i] = new Vector3(x, y, 0);

angle += deltaAngle;

}

posArray[pointNum] = new Vector3(0, R, 0);

}

//画圆

[Header("圆上取的点数")]

public int pointNum = 360;

[Header("该⚪的半径")]

public int R = 5;

private float deltaAngle;

public Vector3[] posArray;

private void Update()

{

lineRenderer.SetPositions(posArray);

}

}

//雷达基线

using UnityEngine;

public class Line : MonoBehaviour

{

private LineRenderer lineRenderer;

private void Start()

{

line[0] = Vector3.zero;

lineRenderer = GetComponent();

}

//画线

[Header("角速度")]

public float angularSpeed;

[Header("最大半径")]

public float R;

private Vector3[] line = new Vector3[2];

private float angle;

private void Update()

{

float x = R * Mathf.Cos((90 - angle) / 180 * Mathf.PI);

float y = R * Mathf.Sin((90 - angle) / 180 * Mathf.PI);

line[1] = new Vector3(x, y, 0);

lineRenderer.SetPositions(line);

angle += angularSpeed * Time.deltaTime;

if (angle > 360) angle -= 360;

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值