untiy实现在限制范围下的圆周运动

从实际问题入手

假设有一个弹弓,明显不能完全绕一圈,对于底部的小部分圆弧是不能穿过的,那么就需要实现限制范围下的圆周运动

解决方法 

 代码实现

1.坐标点可以通过空物体定位,在脚本中通过Find函数可以找到

2.判断象限采取x,y坐标判断

3.斜率通过向量获取,注意特判x==0的情况

核心代码如下

if (mp2.y < 0)
{
    //RadiusPercent,MaxCircleRadius均是与长度相关的计算,可忽略
    //对于mp算出来只是一个向量,要想变成一个坐标还需要加一个参考点(centerPointPosition)
    //如果出现闪烁问题,查看位置信息是否更新错误,确保为同一时刻坐标

    float kLeft = (float)(buttonLeftPointPosition.y - centerPointPosition.y) / (buttonLeftPointPosition.x - centerPointPosition.x);
    float kRight = (float)(buttonRightPointPosition.y - centerPointPosition.y) / (buttonRightPointPosition.x - centerPointPosition.x);
    float RadiusPercent = mp.magnitude / MaxCircleRadius;

    if (mp2.x == 0)
    {

        mp = (buttonLeftPointPosition - centerPointPosition).normalized * MaxCircleRadius * RadiusPercent + centerPointPosition;
    }
    else
    {
        float kBird = (float)(birdPosition.y - centerPointPosition.y) / (birdPosition.x - centerPointPosition.x);
        if (kBird > kLeft)
        {
            mp = (buttonLeftPointPosition - centerPointPosition).normalized * MaxCircleRadius * RadiusPercent + centerPointPosition;
        }
        else if (kBird < kRight)
        {
            mp = (buttonRightPointPosition - centerPointPosition).normalized * MaxCircleRadius * RadiusPercent + centerPointPosition;
        }
        else
        {
            mp += centerPointPosition;
        }
    }
}

### 如何在 Eclipse安装并配置 CloudSim #### 安装与环境搭建概述 CloudSim 是一种用于建模和仿真云计算环境的框架,通常以 Java 库的形式存在[^1]。由于它并非传统意义上的插件,因此无法像其他工具一样直接通过 Eclipse 的 Marketplace 进行安装。以下是关于如何在 Eclipse 中设置 CloudSim 开发环境的具体说明。 --- #### 配置开发环境所需步骤 #### 准备工作 为了成功运行 CloudSim,需确保已安装以下软件: - **Java Development Kit (JDK)**:建议版本为 JDK 8 或更高版本[^2]。 - **Apache Maven**:推荐使用最新稳定版来管理项目依赖项[^3]。 - **Eclipse IDE**:选择支持 Java EE Developers 版本更佳[^4]。 #### 下载 CloudSim 源码或二进制文件 可以从官方 GitHub 存储库下载最新的 CloudSim 发布版本[^5]。访问地址如下(假设链接有效): ``` https://github.com/Cloudslab/cloudsim/releases ``` 如果计划修改源代码,则应克隆整个仓库;仅测试功能时可直接获取压缩包形式发布的二进制文件即可满足需求。 #### 导入项目到 Eclipse 完成上述准备工作之后,在 Eclipse 内导入 CloudSim 工程的方法如下: 1. 打开 Eclipse 并切换至 `File -> Import` 菜单选项; 2. 在弹出对话框里选取类别 “Maven”,然后点击子项 “Existing Maven Projects” 继续操作[^6]; 3. 浏览定位之前解压后的 CloudSim 文件夹路径作为根目录加载工程结构; 4. 确认无误后按 Finish 键结束导入过程。 此时应该能够看到名为 cloudsim-core 及其关联模块被正确引入到了工作区列表当中。 #### 设置运行参数 对于初次使用者来说,可以尝试执行 Example 类中的预定义场景模拟程序验证基本功能是否正常运作。具体做法是在 Package Explorer 查找 examples 包下的任意一个 SampleExampleX.java 文件右键菜单选 Run As->Java Application 启动调试会话[^7]。 另外需要注意的是某些例子可能还涉及到额外的数据输入或者输出位置设定等问题,请参照对应文档调整合适属性值以便顺利完成全部流程演示[^8]。 ```java // 示例代码片段展示简单的云资源分配逻辑实现方式 public class SimpleCloudletAllocation { public static void main(String[] args) throws Exception { int numUser = 1; // 用户数量 Calendar calendar = Calendar.getInstance(); boolean trace_flag = false; // 是否启用跟踪记录 CloudSimulation simulation = new CloudSimulation(Simulation.SIMULATION_TIME_LIMIT, numUser, calendar, trace_flag); DatacenterBroker broker0 = createDataCenterBroker(simulation); List<PowerHost> hostList = setupHosts(); PowerDatacenter datacenter0 = createDataCenter("Datacenter_0",hostList,simulation); simulation.start(); List<? extends Cloudlet> outputList = broker0.getCloudletReceivedList(); for(Cloudlet cl :outputList){ System.out.println(cl.toString()); } } } ``` 以上即完成了基于 Eclipse 构建适合于研究学习目的之上的基础平台部署指南介绍。 --- #### 常见问题排查提示 当遇到诸如找不到类、编译错误等情况发生时,先核查 pom.xml 文件声明是否存在遗漏依赖关系描述情况;其次确认本地机器上 JAVA_HOME 环境变量指向正确以及 CLASSPATH 参数范围覆盖全面与否也很重要[^9]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值