| 
																	
																	
																	
																 | 
																@ -1,17 +1,11 @@ | 
															
														
														
													
														
															
																 | 
																 | 
																package com.example.acapendulum20.canvas | 
																 | 
																 | 
																package com.example.acapendulum20.canvas | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																import android.R | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																import android.content.Context | 
																 | 
																 | 
																import android.content.Context | 
															
														
														
													
														
															
																 | 
																 | 
																import android.content.res.Resources | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																import android.graphics.BitmapFactory | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																import android.graphics.Canvas | 
																 | 
																 | 
																import android.graphics.Canvas | 
															
														
														
													
														
															
																 | 
																 | 
																import android.graphics.Color | 
																 | 
																 | 
																import android.graphics.Color | 
															
														
														
													
														
															
																 | 
																 | 
																import android.graphics.Paint | 
																 | 
																 | 
																import android.graphics.Paint | 
															
														
														
													
														
															
																 | 
																 | 
																import android.util.AttributeSet | 
																 | 
																 | 
																import android.util.AttributeSet | 
															
														
														
													
														
															
																 | 
																 | 
																import android.view.View | 
																 | 
																 | 
																import android.view.View | 
															
														
														
													
														
															
																 | 
																 | 
																import android.widget.ImageView | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																import android.widget.LinearLayout | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																import kotlin.math.PI | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																import kotlin.math.cos | 
																 | 
																 | 
																import kotlin.math.cos | 
															
														
														
													
														
															
																 | 
																 | 
																import kotlin.math.sin | 
																 | 
																 | 
																import kotlin.math.sin | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -34,97 +28,139 @@ class CanvasPendulum @JvmOverloads constructor( | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																        //println("ONDRAW") | 
																 | 
																 | 
																        //println("ONDRAW") | 
															
														
														
													
														
															
																 | 
																 | 
																        //draw line | 
																 | 
																 | 
																        //draw line | 
															
														
														
													
														
															
																 | 
																 | 
																        mPendulum.startPosition.x = (width/2).toFloat() | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        mPendulum.startPosition.x = (width / 2).toFloat() | 
															
														
														
													
														
															
																 | 
																 | 
																        paint.isAntiAlias = true | 
																 | 
																 | 
																        paint.isAntiAlias = true | 
															
														
														
													
														
															
																 | 
																 | 
																        paint.style = Paint.Style.STROKE | 
																 | 
																 | 
																        paint.style = Paint.Style.STROKE | 
															
														
														
													
														
															
																 | 
																 | 
																        paint.color = Color.RED | 
																 | 
																 | 
																        paint.color = Color.RED | 
															
														
														
													
														
															
																 | 
																 | 
																        paint.strokeWidth = 10f | 
																 | 
																 | 
																        paint.strokeWidth = 10f | 
															
														
														
													
														
															
																 | 
																 | 
																        this.canvas.drawLine(mPendulum.startPosition.x, mPendulum.startPosition.y, mPendulum.stopPosition.x, mPendulum.stopPosition.y, paint) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        this.canvas.drawLine( | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.startPosition.x, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.startPosition.y, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.stopPosition.x, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.stopPosition.y, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            paint | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        ) | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																        //draw circle | 
																 | 
																 | 
																        //draw circle | 
															
														
														
													
														
															
																 | 
																 | 
																        paint.style = Paint.Style.FILL_AND_STROKE | 
																 | 
																 | 
																        paint.style = Paint.Style.FILL_AND_STROKE | 
															
														
														
													
														
															
																 | 
																 | 
																        paint.strokeWidth = 1f | 
																 | 
																 | 
																        paint.strokeWidth = 1f | 
															
														
														
													
														
															
																 | 
																 | 
																        paint.color = Color.GRAY | 
																 | 
																 | 
																        paint.color = Color.GRAY | 
															
														
														
													
														
															
																 | 
																 | 
																        canvas?.drawCircle(mPendulum.stopPosition.x, mPendulum.stopPosition.y, mPendulum.ballr, paint) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        //draw magnet as black circle | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        paint.style = Paint.Style.FILL_AND_STROKE | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        paint.strokeWidth = 1f | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        paint.color = Color.DKGRAY | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        canvas?.drawCircle((width/2).toFloat(),1150f, 30f, paint) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        canvas?.drawCircle( | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.stopPosition.x, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.stopPosition.y, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.ballr, | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            paint | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        ) | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																        //draw sensor left | 
																 | 
																 | 
																        //draw sensor left | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																        paint.style = Paint.Style.FILL_AND_STROKE | 
																 | 
																 | 
																        paint.style = Paint.Style.FILL_AND_STROKE | 
															
														
														
													
														
															
																 | 
																 | 
																        paint.strokeWidth = 1f | 
																 | 
																 | 
																        paint.strokeWidth = 1f | 
															
														
														
													
														
															
																 | 
																 | 
																        paint.color = Color.RED | 
																 | 
																 | 
																        paint.color = Color.RED | 
															
														
														
													
														
															
																 | 
																 | 
																        if (mPendulum.angleVelocity > 0 ){ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																            if (mPendulum.stopPosition.x < (width/3) - 30f && mPendulum.stopPosition.x +30 > (width/3) - 30f - mPendulum.ballr){ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        if (mPendulum.angleVelocity > 0) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            if (mPendulum.stopPosition.x < (width / 3) - 30f && mPendulum.stopPosition.x + 30 > (width / 3) - 30f - mPendulum.ballr) { | 
															
														
														
													
														
															
																 | 
																 | 
																                paint.style = Paint.Style.FILL_AND_STROKE | 
																 | 
																 | 
																                paint.style = Paint.Style.FILL_AND_STROKE | 
															
														
														
													
														
															
																 | 
																 | 
																                paint.strokeWidth = 10f | 
																 | 
																 | 
																                paint.strokeWidth = 10f | 
															
														
														
													
														
															
																 | 
																 | 
																                paint.color = Color.GREEN | 
																 | 
																 | 
																                paint.color = Color.GREEN | 
															
														
														
													
														
															
																 | 
																 | 
																            } | 
																 | 
																 | 
																            } | 
															
														
														
													
														
															
																 | 
																 | 
																        } | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																        canvas?.drawCircle((width/3).toFloat(),910f, 30f, paint) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        canvas?.drawCircle((width / 3).toFloat(), 910f, 30f, paint) | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																        //draw sensor right | 
																 | 
																 | 
																        //draw sensor right | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																        paint.style = Paint.Style.FILL_AND_STROKE | 
																 | 
																 | 
																        paint.style = Paint.Style.FILL_AND_STROKE | 
															
														
														
													
														
															
																 | 
																 | 
																        paint.strokeWidth = 10f | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        paint.strokeWidth = 1f | 
															
														
														
													
														
															
																 | 
																 | 
																        paint.color = Color.RED | 
																 | 
																 | 
																        paint.color = Color.RED | 
															
														
														
													
														
															
																 | 
																 | 
																        if (mPendulum.angleVelocity < 0 ){ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																            if (mPendulum.stopPosition.x > (width/1.5) - 30f && mPendulum.stopPosition.x +30 < (width/1.5) + 30f + mPendulum.ballr){ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        if (mPendulum.angleVelocity < 0) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            if (mPendulum.stopPosition.x > (width / 1.5) - 30f && mPendulum.stopPosition.x + 30 < (width / 1.5) + 30f + mPendulum.ballr) { | 
															
														
														
													
														
															
																 | 
																 | 
																                paint.style = Paint.Style.FILL_AND_STROKE | 
																 | 
																 | 
																                paint.style = Paint.Style.FILL_AND_STROKE | 
															
														
														
													
														
															
																 | 
																 | 
																                paint.strokeWidth = 10f | 
																 | 
																 | 
																                paint.strokeWidth = 10f | 
															
														
														
													
														
															
																 | 
																 | 
																                paint.color = Color.GREEN | 
																 | 
																 | 
																                paint.color = Color.GREEN | 
															
														
														
													
														
															
																 | 
																 | 
																            } | 
																 | 
																 | 
																            } | 
															
														
														
													
														
															
																 | 
																 | 
																        } | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																        canvas?.drawCircle((width/1.5).toFloat(),910f, 30f, paint) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        canvas?.drawCircle((width / 1.5).toFloat(), 910f, 30f, paint) | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																        startPendulum() | 
																 | 
																 | 
																        startPendulum() | 
															
														
														
													
														
															
																 | 
																 | 
																        invalidate() | 
																 | 
																 | 
																        invalidate() | 
															
														
														
													
														
															
																 | 
																 | 
																    } | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																    fun startPendulum() { | 
																 | 
																 | 
																    fun startPendulum() { | 
															
														
														
													
														
															
																 | 
																 | 
																        val gravity = 0.981f | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        val damping = 0.996f | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        mPendulum.angleAcceleration = ((-1 * gravity / mPendulum.r) * (mPendulum.angle)).toFloat() | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        mPendulum.angleVelocity += mPendulum.angleAcceleration | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        mPendulum.angleVelocity *= damping | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        mPendulum.angle += mPendulum.angleVelocity | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        //Polar to cartesian conversion | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        mPendulum.stopPosition.x = mPendulum.r * (sin(mPendulum.angle)).toFloat() | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        mPendulum.stopPosition.y = mPendulum.r * (cos(mPendulum.angle)).toFloat() | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        //Origin transition | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        mPendulum.stopPosition.x += mPendulum.startPosition.x | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																    } | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        if (mPendulum.magneticField) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            var gravity = 0.981f | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            var damping = 0.996f | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            if (mPendulum.stopPosition.x > canvas.width / 4.toFloat() && mPendulum.stopPosition.x <= canvas.width * 0.75.toFloat()) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                    gravity = 1.981f | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                if (mPendulum.stopPosition.x > canvas.width / 3.toFloat() && mPendulum.stopPosition.x <= canvas.width / 1.5.toFloat()) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                    gravity = 2.981f | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																    fun startMagnet(){ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        //if Circle = sensor -> circle/angleVelocity ++ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        if (mPendulum.stopPosition.x == canvas.width/2f) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																            mPendulum.angleVelocity = 0f | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                    if (mPendulum.stopPosition.x >= canvas.width / 2.toFloat() - 3 && mPendulum.stopPosition.x <= canvas.width / 2.toFloat() + 3) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                        damping = 0.3f | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                    } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.angleAcceleration = | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                ((-1 * gravity / mPendulum.r) * (mPendulum.angle)).toFloat() | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.angleVelocity += mPendulum.angleAcceleration | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.angleVelocity *= damping | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.angle += mPendulum.angleVelocity | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            //Polar to cartesian conversion | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.stopPosition.x = mPendulum.r * (sin(mPendulum.angle)).toFloat() | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.stopPosition.y = mPendulum.r * (cos(mPendulum.angle)).toFloat() | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            //Origin transition | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.stopPosition.x += mPendulum.startPosition.x | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        if (!mPendulum.magneticField) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            val gravity = 0.981f | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            val damping = 0.996f | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.angleAcceleration = | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                ((-1 * gravity / mPendulum.r) * (mPendulum.angle)).toFloat() | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.angleVelocity += mPendulum.angleAcceleration | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.angleVelocity *= damping | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.angle += mPendulum.angleVelocity | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            //Polar to cartesian conversion | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.stopPosition.x = mPendulum.r * (sin(mPendulum.angle)).toFloat() | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.stopPosition.y = mPendulum.r * (cos(mPendulum.angle)).toFloat() | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            //Origin transition | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            mPendulum.stopPosition.x += mPendulum.startPosition.x | 
															
														
														
													
														
															
																 | 
																 | 
																        } | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																    } | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																    fun stopMagnet(){ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    fun startMagnet(magnet: Boolean) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        println("startMagnet") | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        println(magnet) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        mPendulum.magneticField = magnet | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    fun stopMagnet(magnet: Boolean) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        println("stopMagnet") | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        println(magnet) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        mPendulum.magneticField = magnet | 
															
														
														
													
														
															
																 | 
																 | 
																    } | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																class Position(var x: Float, var y: Float){ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																class Position(var x: Float, var y: Float) { | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																class Pendulum { | 
																 | 
																 | 
																class Pendulum { | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																    var startPosition: Position = Position(0f, 0f) | 
																 | 
																 | 
																    var startPosition: Position = Position(0f, 0f) | 
															
														
														
													
														
															
																 | 
																 | 
																    var stopPosition: Position = Position(0f,0f) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    var stopPosition: Position = Position(0f, 0f) | 
															
														
														
													
														
															
																 | 
																 | 
																    var r = 800f | 
																 | 
																 | 
																    var r = 800f | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																    //PI/6 Max ausschwingen | 
																 | 
																 | 
																    //PI/6 Max ausschwingen | 
															
														
														
													
														
															
																 | 
																 | 
																    var angle : Double = Math.PI/6 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    var angleVelocity : Float = 0.0f   // | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    var angleAcceleration : Float = 0.0f    // | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    var ballr : Float = 70.0f    // | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    var angle: Double = Math.PI / 12 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    var angleVelocity: Float = 0.0f   // | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    var angleAcceleration: Float = 0.0f    // | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    var ballr: Float = 70.0f    // | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    var magneticField: Boolean = false | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} |