繁花曲线java绘制

本文介绍了如何使用Java编程来绘制繁花曲线。通过求解小圆圆心坐标、小圆自转弧度以及点C的坐标,形成繁花曲线。文章详细阐述了计算过程,并提供了代码解释,包括两个关键方法:get_center_in_circle,用于获取小圆轨迹点和动点轨迹坐标。在main函数中,随着时间的推移,不断更新轨迹坐标,最终绘制出繁花曲线。对于外切圆的情况,调整计算方式以适应变化。
摘要由CSDN通过智能技术生成

  为更好解决繁花曲线绘制问题,由java编写进行输出动点轨迹方程的具体坐标,形成繁花曲线,其基本思路为

第一步:求小圆圆心坐标

小圆圆心的公转轨迹是一个半径为 r1- r2 的圆,求小圆圆心坐标,相当于是求半径为 r1- r2 的圆上θ 弧度对应的点的坐标。

圆上的点的坐标公式为:

x = r * cos(θ), y = r * sin(θ)

小圆圆心坐标为:( xa+ (r1 - r2) * cos(θ), ya + (r1 - r2) * sin(θ) )

第二步:求小圆自转弧度

设小圆自转弧度为α,小圆紧贴大圆运动,两者走过的路程相同,因此有:

r1 *θ = r2 *α

小圆自转弧度α = (r1 / r2) *θ

第三步:求点C坐标

点C相对小圆圆心B的公转轨迹是一个半径为 Rc 的圆,类似第一步,有:

轨迹点C的坐标为:( xa+ rc* cos(θ), ya+ rc* sin(θ))

其中,为简化模型,定义大圆圆心位于原点,即xa=ya=0;

 首先,先求内切圆中动点轨迹方程,由于题中给的条件是时间,因此设角速度为w,则弧度就应该等于wt,其中ra,rb,k由题意给出,可直接在程序修改,可得到一系列轨迹动点,进行绘图

下面,对代码进行解释,首先,main内部有一个工具方法get_center_in_circle,对这个方法进行重写,当输入get_center_in_circle(double r,double radian_out,int i),三个参数时,返回的是小圆的轨迹点,double r为小圆圆心距大圆的距离,根据是内切圆还是外切圆可得不同的值 ,当是内切圆时r=ra-rb,外切圆时r=ra+rb,double radian_out 参数是大圆在一定时间下转过的弧度,int i是判断返回x坐标还是y坐标,为1时返回x,其余返回y。

当输入get_center_in_circle(double ra,double rb,double radian_out,double xb,double yb,double rc)为6个参数时,返回的是动点的轨迹坐标,前三个参数是给出参数,double xb,double yb两个参数是通过上一个工具方法得到的参数,指的是小圆圆心的轨迹坐标,double rc参数由给出的比例系数确定rc=rb*k,指的是动点距小圆圆心的距离。

main()函数里得到动点轨迹坐标后,将数据更新,进行循环:

t++;

radian_out=w*t;

更新时间使绘图继续。

package MathModeling;

import java.util.ArrayList;
import java.util.List;

public class InFindTrail {
	
	public static double ra=17.0;//大圆半径
	
	public static double rb=13.0;//小圆半径
	
	public static double k=0.5;//比例系数
	
	static double xa;//大圆坐标

	double ya;//大圆坐标
    
	static double xb;//小圆坐标

	static double yb;//小圆坐标
	
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值