Created
September 8, 2017 13:48
-
-
Save BlackScorp/8414a5f435457aa13251fcdc5bd5cb5b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
$width = 800; | |
$height = 800; | |
$centerX = $width / 2; | |
$centerY = $height / 2; | |
$img = imagecreate($width, $height); | |
$backgroundColor = imagecolorallocate($img, 220, 220, 220); | |
$orange = imagecolorallocate($img, 255, 165, 0); | |
$black = imagecolorallocate($img, 0, 0, 0); | |
$violet = imagecolorallocate($img, 238, 130, 238); | |
$green = imagecolorallocate($img, 0, 128, 0); | |
$blue = imagecolorallocate($img, 0, 0, 128); | |
$drawSun = function () use (&$img, $centerX, $centerY, $orange, $violet, $black) { | |
imagefilledarc($img, $centerX, $centerY, 15, 15, 0, 360, $orange, IMG_ARC_PIE); | |
imagearc($img, $centerX, $centerY, 65, 65, 0, 360, $violet); | |
}; | |
; | |
$drawPlanet = function ($orbit,$startGrid,$color) use (&$img, $centerX, $centerY, $black) { | |
$planetX = $centerX + sin(deg2rad($startGrid)) * 50 * $orbit; | |
$planetY = $centerY + cos(deg2rad($startGrid)) * 50 * $orbit; | |
imagearc($img, $centerX, $centerY, 50*$orbit, 50*$orbit, 0, 360, $black); | |
imagefilledarc($img, $planetX, $planetY, 8, 8, 0, 360, $color, IMG_ARC_PIE); | |
}; | |
$drawBackground = function () use ($drawSun,$drawPlanet,$green) { | |
$drawSun(); | |
$drawPlanet(2,350,$green); | |
}; | |
$drawBackground(); | |
header("Content-type: image/png"); | |
imagepng($img); | |
imagedestroy($img); | |
die(); | |
/** | |
* // Converts from degrees to radians. | |
* Math . radians = function (degrees) { | |
* return degrees * Math . PI / 180; | |
* }; | |
* | |
* // Converts from radians to degrees. | |
* Math . degrees = function (radians) { | |
* return radians * 180 / Math . PI; | |
* }; | |
* | |
* canvasWidth = $("canvas") . width(); | |
* canvasHeight = $("canvas") . height(); | |
* | |
* canvas = document . getElementById('canvas'); | |
* context = canvas . getContext('2d'); | |
* | |
* context . clearRect(0, 0, canvas . width, canvas . height); | |
* | |
* context . font = "12px Arial"; | |
* | |
* centerX = canvasWidth / 2; | |
* centerY = canvasHeight / 2; | |
* | |
* drawWorld(0); | |
* drawBackground(); | |
* | |
* // draw paths | |
* $("#tick") . change(function () { | |
* context . clearRect(0, 0, canvas . width, canvas . height); | |
* drawWorld($("#tick") . val()); | |
* drawBackground(); | |
* }); | |
* | |
* function drawBackground() | |
* { | |
* //sun | |
* centerX = (canvasWidth / 2); | |
* centerY = (canvasWidth / 2); | |
* context . beginPath(); | |
* context . arc(centerX, centerY, 10, 0, 2 * Math . PI, false); | |
* context . lineWidth = 5; | |
* context . fillStyle = 'orange'; | |
* context . fill(); | |
* context . strokeStyle = 'orange'; | |
* context . stroke(); | |
* context . fillStyle = 'black'; | |
* context . fillText("Sonne", centerX + 10, centerY); | |
* | |
* | |
* //orbits | |
* for (orbit = 2; orbit < 7; orbit++) | |
* { | |
* for (grad = 0; grad < 360; grad++) | |
* { | |
* centerX = (canvasWidth / 2) + Math . sin(grad) * 50 * orbit; | |
* centerY = (canvasWidth / 2) + Math . cos(grad) * 50 * orbit; | |
* context . beginPath(); | |
* context . arc(centerX, centerY, 1, 0, 2 * Math . PI, false); | |
* context . lineWidth = 1; | |
* context . fillStyle = 'black'; | |
* context . fill(); | |
* context . strokeStyle = 'black'; | |
* context . stroke(); | |
* } | |
* } | |
* //gravitation belt | |
* for (grad = 0; grad < 360; grad++) | |
* { | |
* centerX = (canvasWidth / 2) + Math . sin(grad) * 50 * 1; | |
* centerY = (canvasWidth / 2) + Math . cos(grad) * 50 * 1; | |
* context . beginPath(); | |
* context . arc(centerX, centerY, 1, 0, 2 * Math . PI, false); | |
* context . lineWidth = 1; | |
* context . fillStyle = 'violet'; | |
* context . fill(); | |
* context . strokeStyle = 'violet'; | |
* context . stroke(); | |
* } | |
* | |
* startGrad = 230; | |
* startOrbit = 2; | |
* //start planet | |
* centerX = (canvasWidth / 2) + (Math . sin(Math . radians(startGrad)) * 50 * startOrbit); | |
* centerY = (canvasWidth / 2) + (Math . cos(Math . radians(startGrad)) * 50 * startOrbit); | |
* context . beginPath(); | |
* context . arc(centerX, centerY, 3, 0, 2 * Math . PI, false); | |
* context . lineWidth = 5; | |
* context . fillStyle = 'green'; | |
* context . fill(); | |
* context . strokeStyle = 'green'; | |
* context . stroke(); | |
* context . fillStyle = 'black'; | |
* context . fillText("Start Planet", centerX + 10, centerY); | |
* } | |
* | |
* function drawWorld(tick) | |
* { | |
* | |
* targetGrad = 0; | |
* targetOrbit = 6; | |
* | |
* // draw target | |
* centerX = (canvasWidth / 2) + (Math . sin(Math . radians(targetGrad + (tick * 0.25 / targetOrbit))) * 50 * targetOrbit); | |
* centerY = (canvasWidth / 2) + (Math . cos(Math . radians(targetGrad + (tick * 0.25 / targetOrbit))) * 50 * targetOrbit); | |
* | |
* context . beginPath(); | |
* context . arc(centerX, centerY, 3, 0, 2 * Math . PI, false); | |
* context . lineWidth = 5; | |
* context . fillStyle = 'red'; | |
* context . fill(); | |
* context . strokeStyle = 'red'; | |
* context . stroke(); | |
* context . fillStyle = 'black'; | |
* context . fillText("Ziel Planet", centerX + 10, centerY); | |
* | |
* | |
* planet2Grad = 129; | |
* planet2Orbit = 3; | |
* | |
* centerX = (canvasWidth / 2) + (Math . sin(Math . radians(planet2Grad + (tick * 0.25 / planet2Orbit))) * 50 * planet2Orbit); | |
* centerY = (canvasWidth / 2) + (Math . cos(Math . radians(planet2Grad + (tick * 0.25 / planet2Orbit))) * 50 * planet2Orbit); | |
* | |
* context . beginPath(); | |
* context . arc(centerX, centerY, 3, 0, 2 * Math . PI, false); | |
* context . lineWidth = 5; | |
* context . fillStyle = 'blue'; | |
* context . fill(); | |
* context . strokeStyle = 'blue'; | |
* context . stroke(); | |
* context . fillStyle = 'black'; | |
* context . fillText("Anderer Planet", centerX + 10, centerY); | |
* | |
* | |
* context . beginPath(); | |
* context . arc(centerX, centerY, 25, 0, 2 * Math . PI, false); | |
* context . lineWidth = 1; | |
* context . fillStyle = 'blue'; | |
* context . stroke(); | |
* context . fillStyle = 'blue'; | |
* | |
* planet3Grad = 340; | |
* planet3Orbit = 4; | |
* | |
* centerX = (canvasWidth / 2) + (Math . sin(Math . radians(planet3Grad + (tick * 0.25 / planet3Orbit))) * 50 * planet3Orbit); | |
* centerY = (canvasWidth / 2) + (Math . cos(Math . radians(planet3Grad + (tick * 0.25 / planet3Orbit))) * 50 * planet3Orbit); | |
* | |
* context . beginPath(); | |
* context . arc(centerX, centerY, 3, 0, 2 * Math . PI, false); | |
* context . lineWidth = 5; | |
* context . fillStyle = 'blue'; | |
* context . fill(); | |
* context . strokeStyle = 'blue'; | |
* context . stroke(); | |
* context . fillStyle = 'black'; | |
* context . fillText("Anderer Planet", centerX + 10, centerY); | |
* | |
* | |
* context . beginPath(); | |
* context . arc(centerX, centerY, 25, 0, 2 * Math . PI, false); | |
* context . lineWidth = 1; | |
* context . fillStyle = 'blue'; | |
* context . stroke(); | |
* context . fillStyle = 'blue'; | |
* | |
* planet4Grad = 340; | |
* planet4Orbit = 5; | |
* | |
* centerX = (canvasWidth / 2) + (Math . sin(Math . radians(planet4Grad + (tick * 0.25 / planet4Orbit))) * 50 * planet4Orbit); | |
* centerY = (canvasWidth / 2) + (Math . cos(Math . radians(planet4Grad + (tick * 0.25 / planet4Orbit))) * 50 * planet4Orbit); | |
* | |
* context . beginPath(); | |
* context . arc(centerX, centerY, 3, 0, 2 * Math . PI, false); | |
* context . lineWidth = 5; | |
* context . fillStyle = 'blue'; | |
* context . fill(); | |
* context . strokeStyle = 'blue'; | |
* context . stroke(); | |
* context . fillStyle = 'black'; | |
* context . fillText("Anderer Planet", centerX + 10, centerY); | |
* | |
* | |
* context . beginPath(); | |
* context . arc(centerX, centerY, 25, 0, 2 * Math . PI, false); | |
* context . lineWidth = 1; | |
* context . fillStyle = 'blue'; | |
* context . stroke(); | |
* context . fillStyle = 'blue'; | |
* | |
* } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment