Created
May 8, 2014 10:44
-
-
Save sergiosvieira/7f9e134013deac2ce2d1 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
float[] worldWide = {-180., 90., 360.0, 180.0}; | |
//float[] worldWide = {-45., 22., 90.0, 45.0}; | |
float[] screen = {0., 0., 1024., 512.}; | |
float[] viewPort = {0., 0., 1566., 1045.}; | |
float scale = 1.; | |
void setup() | |
{ | |
size((int)viewPort[2], (int)viewPort[3]); | |
} | |
float latToPoint(float lat) | |
{ | |
float viewPortHeight = viewPort[3]; | |
float worldWideTop = worldWide[1]; | |
float worldWideHeight = worldWide[3]; | |
float ratio = viewPortHeight / worldWideHeight; | |
//return (- viewPortHeight * ( worldWideTop - lat )) / worldWideHeight; | |
return ( worldWideTop - lat) * ratio; | |
} | |
float lonToPoint(float lon) | |
{ | |
float viewPortWidth = viewPort[2]; | |
float worldWideLeft = worldWide[0]; | |
float worldWideWidth = worldWide[2]; | |
float ratio = viewPortWidth / worldWideWidth; | |
//return (- viewPortWidth * ( worldWideLeft - lon )) / worldWideWidth; | |
return (- worldWideLeft - (-lon)) * ratio; | |
} | |
float pointToLon(float x) | |
{ | |
float viewPortWidth = viewPort[2]; | |
float worldWideLeft = worldWide[0]; | |
float worldWideWidth = worldWide[2]; | |
float ratio = worldWideWidth / viewPortWidth; | |
return worldWideLeft - (- x * ratio); | |
} | |
float pointToLat(float y) | |
{ | |
float viewPortHeight = viewPort[3]; | |
float worldWideTop = worldWide[1]; | |
float worldWideHeight = worldWide[3]; | |
float ratio = worldWideHeight / viewPortHeight; | |
return worldWideTop - (y * ratio); | |
} | |
class Node | |
{ | |
float lat; | |
float lon; | |
Node(float a_lat, float a_lon) | |
{ | |
lat = a_lat; | |
lon = a_lon; | |
} | |
} | |
Node[] nodes = { | |
new Node( -3.505891789 , -40.2783645 ), | |
new Node( -5.328594679 , -38.92237107 ), | |
new Node( -3.74191444 , -39.35537312 ), | |
new Node( -4.977728725 , -39.06317314 ), | |
new Node( -4.215372412 , -40.06656986 ), | |
new Node( -5.983021841 , -40.12300317 ), | |
new Node( -4.062433878 , -39.45373678 ), | |
new Node( -7.107291457 , -39.32929965 ), | |
new Node( -6.23812643 , -38.92500936 ), | |
new Node( -5.581869982 , -39.40230051 ), | |
new Node( -5.149851357 , -38.87775444 ), | |
new Node( -3.803300041 , -39.26164818 ), | |
new Node( -4.838346256 , -39.14095736 ), | |
new Node( -7.109019721 , -38.68294255 ), | |
new Node( -7.501917403 , -38.74674516 ), | |
new Node( -5.198283775 , -39.31277746 ), | |
new Node( -5.693736833 , -38.95063992 ), | |
new Node( -4.4069701 , -39.3111742 ), | |
new Node( -4.851954624 , -38.16573986 ), | |
new Node( -4.370696352 , -39.3158692 ), | |
new Node( -3.571617619 , -39.97252107 ), | |
new Node( -7.090778078 , -39.48690884 ), | |
new Node( -5.915330333 , -40.41394324 ), | |
new Node( -5.909525237 , -40.25254923 ), | |
new Node( -5.949263 , -38.907803 ), | |
new Node( -6.983728992 , -40.35598226 ), | |
new Node( -5.949054571 , -38.83046507 ), | |
new Node( -5.776328845 , -38.34497431 ), | |
new Node( -4.209515016 , -40.44859842 ), | |
new Node( -6.037778 , -38.447193 ), | |
new Node( -5.470685 , -40.204276 ), | |
new Node( -7.481016 , -38.73024 ), | |
new Node( -5.195816 , -39.601225 ), | |
new Node( -4.419061 , -39.177621 ), | |
new Node( -7.641678529 , -38.89364964 ), | |
new Node( -3.882202451 , -40.01247312 ), | |
new Node( -3.796043572 , -40.25356323 ), | |
new Node( -5.416929772 , -40.47902143 ), | |
new Node( -5.280081325 , -40.66820062 ), | |
new Node( -5.261104572 , -40.80506682 ), | |
new Node( -4.042379 , -39.987322 ), | |
new Node( -3.761444 , -40.036497 ), | |
new Node( -3.179590925 , -40.44584645 ), | |
new Node( -4.766981832 , -40.58248057 ), | |
new Node( -3.599217402 , -40.86365713 ), | |
new Node( -3.633621 , -39.516132 ), | |
new Node( -6.402143043 , -38.95658227 ), | |
new Node( -6.417186 , -39.059782 ), | |
new Node( -4.309885 , -40.684951 ), | |
new Node( -4.816670522 , -40.36173315 ), | |
new Node( -4.955221893 , -40.52404083 ), | |
new Node( -5.382572888 , -38.45959847 ), | |
new Node( -6.084822 , -39.454306 ), | |
new Node( -3.86508767 , -41.11330357 ), | |
new Node( -3.50214321 , -40.6146866 ), | |
new Node( -5.9427898 , -40.3993464 ), | |
new Node( -5.868341987 , -38.31799739 ), | |
new Node( -6.415912 , -39.08259 ), | |
new Node( -3.69046238 , -39.29542795 ), | |
new Node( -4.193545995 , -38.79938483 ), | |
new Node( -3.573737 , -39.629489 ), | |
new Node( -4.222256817 , -38.38385341 ), | |
new Node( -3.397075 , -40.263431 ), | |
new Node( -5.7228775 , -38.1681776 ), | |
new Node( -3.853063885 , -40.27072029 ), | |
new Node( -5.261854814 , -38.64577848 ), | |
new Node( -5.83740469 , -39.47767639 ), | |
new Node( -4.036022415 , -38.53331141 ), | |
new Node( -6.202115 , -40.711288 ), | |
new Node( -3.438721263 , -39.62952233 ), | |
new Node( -3.975971154 , -39.50597626 ), | |
new Node( -3.905961845 , -38.5553424 ), | |
new Node( -5.50257889 , -39.73667289 ), | |
new Node( -4.564899904 , -38.93236956 ), | |
new Node( -5.728479651 , -39.64723653 ), | |
new Node( -6.967953 , -39.727293 ), | |
new Node( -5.889177 , -39.15382 ), | |
new Node( -3.635646537 , -40.82041518 ), | |
new Node( -4.000999028 , -38.52317173 ), | |
new Node( -5.16690242 , -39.49137774 ), | |
new Node( -3.837532851 , -39.68968013 ), | |
new Node( -6.308294209 , -39.43365984 ), | |
new Node( -6.01 , -40.324 ), | |
new Node( -3.237032614 , -40.61620927 ), | |
new Node( -6.946387211 , -39.94061022 ), | |
new Node( -3.753362 , -40.71186 ), | |
new Node( -5.156796288 , -39.71839241 ), | |
new Node( -4.317856 , -38.894027 ), | |
new Node( -5.840381 , -40.712804 ), | |
new Node( -6.733659208 , -39.93275197 ), | |
new Node( -5.542865475 , -39.10435886 ), | |
new Node( -4.220286 , -39.283268 ), | |
new Node( -7.081014 , -40.084615 ), | |
new Node( -6.788883466 , -39.37530148 ), | |
new Node( -3.739344633 , -38.86833962 ), | |
new Node( -3.771273346 , -38.95978287 ), | |
new Node( -4.392728041 , -39.28256728 ), | |
new Node( -4.808954356 , -40.01111661 ), | |
new Node( -6.583858781 , -39.23756393 ), | |
new Node( -5.293535 , -40.173444 ), | |
new Node( -6.189098 , -38.553137 ), | |
new Node( -5.965648 , -38.276387 ), | |
new Node( -4.980754081 , -39.36579249 ), | |
new Node( -6.610573141 , -39.48234294 ), | |
new Node( -3.168317202 , -40.86140344 ), | |
new Node( -7.020179 , -39.102801 ), | |
new Node( -5.813151154 , -39.24748357 ), | |
new Node( -5.570672773 , -40.67179618 ), | |
new Node( -4.651008 , -38.48875 ), | |
new Node( -6.272228994 , -39.93310611 ), | |
new Node( -6.596587439 , -40.13924361 ), | |
new Node( -4.058951 , -39.115126 ), | |
new Node( -3.970682 , -38.744555 ), | |
new Node( -3.152411571 , -41.16729406 ), | |
new Node( -6.88895927 , -39.08106789 ), | |
new Node( -4.897313 , -40.77043 ), | |
new Node( -5.562632 , -38.325225 ), | |
new Node( -6.892186 , -39.215687 ), | |
new Node( -7.029354 , -39.28301 ), | |
new Node( -4.809116 , -39.551388 ), | |
new Node( -4.444447 , -38.961082 ), | |
new Node( -5.489094821 , -38.45022931 ), | |
new Node( -5.04557 , -38.383801 ), | |
new Node( -4.799747 , -38.709306 ), | |
new Node( -3.371389673 , -39.49250558 ), | |
new Node( -3.674339449 , -39.57459903 ), | |
new Node( -5.625716437 , -38.2571987 ), | |
new Node( -4.021833113 , -38.43695443 ), | |
new Node( -5.898912 , -38.370149 ), | |
new Node( -4.402200284 , -38.69572498 ), | |
new Node( -4.105828779 , -38.28907915 ), | |
new Node( -4.666453362 , -40.2019817 ), | |
new Node( -6.161337629 , -39.21808495 ), | |
new Node( -6.271466386 , -40.22022046 ), | |
new Node( -4.059148 , -38.903176 ), | |
new Node( -3.896112 , -40.611118 ), | |
new Node( -3.471698 , -39.858824 ), | |
new Node( -6.672764 , -38.755099 ), | |
new Node( -3.83483 , -39.98873 ) | |
}; | |
void mouseWheel(MouseEvent event) | |
{ | |
float e = event.getAmount(); | |
if (e == -1) | |
{ | |
scale += e; | |
} | |
else | |
{ | |
scale += e; | |
} | |
//println(scale); | |
} | |
void draw() | |
{ | |
background(0); | |
for (int i = 0; i < nodes.length; i++) | |
{ | |
//println(i); | |
Node node = nodes[i]; | |
float x = lonToPoint(node.lon); | |
float y = latToPoint(node.lat); | |
//println("x:", x, " y:", y); | |
float cx = mouseX;//viewPort[2] / 2.; | |
float cy = mouseY;//viewPort[3] / 2.; | |
//println("cx:", cx, " cy:", cy); | |
float newX = x - cx; | |
float newY = y - cy; | |
//println("x - cx:", newX, " y - cx:", newY); | |
newX *= scale; | |
newY *= scale; | |
//println("x * scale:", newX, " y * scale:", newY); | |
newX += cx; | |
newY += cy; | |
//println("x + cx:", newX, " y + cy:", newY); | |
ellipse(newX, newY, 5, 5); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment