Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (499)
Games in Android Showcase (118)
games submitted by our members
Games in WIP (568)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Translating between cartesian and Isometric coordinates  (Read 3405 times)
0 Members and 1 Guest are viewing this topic.
Offline Dreamcatchermatt

Junior Member





« Posted 2011-01-14 10:33:31 »

Morning all.

my for-fun project at the moment is a basic isomorphic base building tower defense strategy game.

I need to be able to translate between my easy to use 3D Cartesian world system to my 2D Isometric screen projection.

I thought I would create a thread on this, to document my progress and get a bit of discussion going.


UPDATE:

My world cord system will use 3D XYZ coordinates. I need to convert this to the 2D XY cord system that the screen uses to draw.
The goal is to be able to then draw my 3D world in 2D Isometric projection.

I started by Wikipedia-ing that: http://en.wikipedia.org/wiki/Isometric_Projection

The first important point I noticed it that I've got the camera angles wrong on my sprite renders Tongue

After reading through the wiki article, i moved to this page that answers pretty much all my questions.

From this I was able to sketch up the following function for transforming from world to screen cords.

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
Vector2 cameraOffset;

// these could probably be a constant.  
float a = arctan(1/2);
float s = 100f; // the edge-width of one cubic cell in the world.

Vector2 World2Screen(float X, float Y, float Z)
{
   float screenX = cameraOffset.X + (X-Z)cos(a)s;
   float screenY = cameraOffset.Y + ((X+Z)sin(a)-Y)s;
   return new Vector2(screenX, screenY);
}


I've not had a chance to run this code yet, but any comments, suggestions and constructive crit' are welcome.

Thanks for reading, have a good day,
Matt
Offline delt0r

JGO Knight


Medals: 27
Exp: 18 years


Computers can do that?


« Reply #1 - Posted 2011-01-18 13:37:38 »

your sin(a) and cos(a) are redundant. You can replace them with a constant.

In this case since you have defined a=arctan(1/2) then sin(a)=1/sqrt(5) and cos=2/sqrt(5).

Its more normal to "cheat" with isometric sets and change the ratios to things that are not irrational.

I have no special talents. I am only passionately curious.--Albert Einstein
Offline Dreamcatchermatt

Junior Member





« Reply #2 - Posted 2011-01-21 10:52:51 »

Hi,

Glad that the forums are back Cheesy

Yes, I realised that most of the processor heavy stuff actualy is constant, so I pre-calculate that, store it as a variable, and use it each time. This is WAYY quicker, obviously Smiley

I dont have my code with me at the moment, but I will post the method I'm now using along with some screens later this evening. What I'm going to work on next is getting a basic particle system going.


The next problem I need to solve is automaticaly finding the center point of the base of a sprite.


Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Pippogeek (40 views)
2014-09-24 16:13:29

Pippogeek (31 views)
2014-09-24 16:12:22

Pippogeek (21 views)
2014-09-24 16:12:06

Grunnt (47 views)
2014-09-23 14:38:19

radar3301 (29 views)
2014-09-21 23:33:17

BurntPizza (65 views)
2014-09-21 02:42:18

BurntPizza (37 views)
2014-09-21 01:30:30

moogie (44 views)
2014-09-21 00:26:15

UprightPath (53 views)
2014-09-20 20:14:06

BurntPizza (55 views)
2014-09-19 03:14:18
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!