垂直与抛物线

绘制

public class CustomView extends View {
public CustomView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}

public CustomView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public CustomView(Context context) {
    super(context);
}
//测量

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
//重写OnDraw绘制基本图形

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    //先创建画笔
    Paint paint = new Paint();
    //设置画笔颜色
    paint.setColor(Color.BLUE);
    // 设置抗锯齿
    paint.setAntiAlias(true);
    // 三种样式
    paint.setStyle(Paint.Style.FILL_AND_STROKE);
    //设置边的宽度
    paint.setStrokeWidth(5);

    // 阴影
    paint.setShadowLayer(10, 0, 0, Color.CYAN);

    //绘制圆
    canvas.drawCircle(30, 30, 15, paint);
}

}

布局
<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout… xmlns:android=“http://schemas.android.com/apk/res/android
xmlns:app=“http://schemas.android.com/apk/res-auto
xmlns:tools=“http://schemas.android.com/tools
android:id="@+id/id_container"
android:layout_width=“match_parent”
android:layout_height=“match_parent”
tools:context=".activity.MainActivity">

<com.bwie.yuan.activity.CustomView
    android:id="@+id/ball"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:orientation="horizontal">

    <Button
        android:id="@+id/button01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="垂直"
        android:textSize="20sp" />

    <Button
        android:id="@+id/button02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="抛物线"
        android:textSize="20sp" />

    <Button
        android:id="@+id/button03"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="跳转"
        android:textSize="20sp" />
</LinearLayout>

</RelativeLayout…>

主页

import com.bwie.yuan.R;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private CustomView ball;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //找控件
    ball = findViewById(R.id.ball);

    Button button1 = findViewById(R.id.button01);
    Button button2 = findViewById(R.id.button02);


    button1.setOnClickListener(this);
    button2.setOnClickListener(this);
    findViewById(R.id.button03).setOnClickListener(this);

}

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.button01:

            ValueAnimator va1 = new ValueAnimator();
            va1.setDuration(3000);
            va1.setObjectValues(new PointF(0, 0));
            va1.setInterpolator(new LinearInterpolator());
            va1.setEvaluator(new TypeEvaluator<PointF>() {
                @Override
                public PointF evaluate(float fraction, PointF startValue, PointF endValue) {
                    PointF point = new PointF();
                    point.x = 0;
                    point.y = 0.5f * 200 * (fraction * 3) * (fraction * 3);

                    return point;
                }
            });
            va1.start();
            va1.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator animation) {
                    PointF point = (PointF) animation.getAnimatedValue();
                    ball.setX(point.x);
                    ball.setY(point.y);
                }
            });
            break;
        case R.id.button02:
            ValueAnimator va = new ValueAnimator();
            va.setDuration(3000);
            va.setObjectValues(new PointF(0, 0));
            va.setInterpolator(new LinearInterpolator());
            va.setEvaluator(new TypeEvaluator<PointF>() {
                @Override
                public PointF evaluate(float fraction, PointF startValue, PointF endValue) {
                    PointF point = new PointF();
                    point.x = 200 * fraction * 3;
                    point.y = 0.5f * 200 * (fraction * 3) * (fraction * 3);

                    return point;
                }
            });
            va.start();
            va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator animation) {
                    PointF point = (PointF) animation.getAnimatedValue();
                    ball.setX(point.x);
                    ball.setY(point.y);
                }
            });

            break;
        case R.id.button03:
            startActivity(new Intent(MainActivity.this, ShowActivity.class));
            finish();
            break;
    }
}

}

内容概要:本文档聚焦于“博士论文复现”项目,重点围绕光伏并网逆变器的阻抗建模扫频验证方法展开,利用Simulink进行系【博士论文复现】【阻抗建模、验证扫频法】光伏并网逆变器扫频稳定性分析(包含锁相环电流环)(Simulink仿真实现)统建模仿真,涵盖锁相环和电流环控制环节,旨在分析并网系统的稳定性。文档不仅提供具体的技术实现路径,还强调科研过程中逻辑思维、创新意识借助已有成果的重要性,提倡系统性学习实践结合。此外,文中列举了多个相关科研方向的复现案例资源链接,涵盖虚拟电厂调度、风光制氢、电力系统优化等多个前沿领域,形成一个综合性科研辅助资料集合。; 适合人群:具备电力电子、自动控制或新能源系统背景的研究生、博士生及科研人员,熟悉MATLAB/Simulink仿真环境,有志于从事并网逆变器稳定性分析或相关课题研究的人员。; 使用场景及目标:①复现博士论文中的光伏并网逆变器阻抗建模扫频分析过程,掌握其理论基础仿真技巧;②深入理解锁相环电流环在并网系统稳定性中的作用;③获取相关科研项目的代码数据资源,用于学术研究、论文撰写或工程验证。; 阅读建议:建议按照文档提供的目录顺序系统学习,优先下载并查看网盘中的完整资源,结合Simulink模型代码进行实操演练,注重理论仿真的对照分析,以加深对阻抗建模稳定性判据的理解。
内容概要:本文介绍了基于粒子群优化算法【故障定位】基于粒子群优化算法的故障定位及故障区段研究【IEEE33节点】(Matlab代码实现)(PSO)在IEEE33节点系统上进行故障定位及故障区段判定的研究,采用Matlab代码实现。通过构建配电网故障定位的数学模型,利用粒子群算法的全局寻优能力,快速准确地识别故障发生的位置范围。文中详细阐述了算法原理、适应度函数设计、约束条件处理及仿真流程,并结合IEEE33节点标准测试系统验证了方法的有效性和鲁棒性。此外,文档还列举了多个相关科研方向及Matlab/Simulink仿真实现案例,涵盖智能优化、机器学习、电力系统管理、路径规划等多个领域,展示了广泛的科研应用场景和技术支持能力。; 适合人群:具备电力系统基础知识和Matlab编程能力的研究生、科研人员及从事智能电网、故障诊断相关工作的工程技术人员。; 使用场景及目标:① 掌握基于智能优化算法的配电网故障定位方法;② 学习如何将粒子群算法应用于实际电力系统问题建模求解;③ 借助Matlab实现算法仿真,提升科研工程实践能力;④ 拓展对电力系统故障诊断、优化算法应用及综合能源系统仿真的理解。; 阅读建议:建议读者结合提供的Matlab代码进行实操演练,深入理解算法实现细节参数设置,同时可参考文档中列出的其他研究方向拓展思路,适用于科研项目开发、论文复现算法改进。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值