gnarfk
Joined: 20150105, 16:18
Posts: 37
Pry about Widelands
Location: France

Posted at: 20150202, 18:24
i can think of two last problems with this thing:
1) with your "shape" definition , what do you do with points falling exactly on the border ? which side will they belong to ? (we can fix this with the addition of a very little nonalgebric number ....)
2) i do think we have to calculate altitude and terrain type differently. (vertices , or fields , will behave differently ... Or maybe we should consider a field represented by it's center ...)
Maybe we have to think about shapes not being "planes" but being like pyramids or prisms , to allow good computation of altitude ... these "non exact rotations" could lead to a difference in term of building sites .....
Top
Quote



einstein13
Joined: 20130729, 00:01
Posts: 1057
One Elder of Players
Location: Poland

Posted at: 20150203, 01:20
1) I say that the points are outside the shape. We expanded the shape a little, so the border points aren't inside.
2) My idea doesn't contain any features. It contains only shape. Second part is to fill the shape with correct land type.
So the points of designing map would be:
 Draw a shape
 Put information of rotation angle / how many times it should be replied
 Choose type of terrain filling the shape
 Do other stuff like altitudes, bobs, trees
You can do the same things many times (ex. first: main island, then some mountains, then river and lake on the island). At the end you should make altitudes, and all the stuff.
I've checked my idea of shape rotations on paper. First triangle contained 15 nodes (1+2+3+4+5). First rotation (just plain triangle) contained 10 nodes. After that I've expanded the area of basic triangle and rotated that shape  result of 14 nodes. For me change the area within 1 node is acceptable.
Edited: 20150203, 01:22
einstein13 calculations & maps packages: http://wuatek.noip.org/~rak/widelands/
Top
Quote



gnarfk
Joined: 20150105, 16:18
Posts: 37
Pry about Widelands
Location: France

Posted at: 20150203, 11:03
einstein13 wrote:
1) I say that the points are outside the shape. We expanded the shape a little, so the border points aren't inside.
2) My idea doesn't contain any features. It contains only shape. Second part is to fill the shape with correct land type.
So the points of designing map would be:
 Draw a shape
 Put information of rotation angle / how many times it should be replied
 Choose type of terrain filling the shape
 Do other stuff like altitudes, bobs, trees
You can do the same things many times (ex. first: main island, then some mountains, then river and lake on the island). At the end you should make altitudes, and all the stuff.
i don't like the idea of thinking about doing these things after. Maybe we should consider rotating operations (adding bob , upping altitude .... do the same thing in the closest point in the image of the rotation)
I've checked my idea of shape rotations on paper. First triangle contained 15 nodes (1+2+3+4+5). First rotation (just plain triangle) contained 10 nodes. After that I've expanded the area of basic triangle and rotated that shape  result of 14 nodes. For me change the area within 1 node is acceptable.
I can think of two different ideas to help this.
1) we can create these shapes independantly (not following usual edges fields and nodes things) (then the original one will be created after creation of the shape)
2) if we want to set fieldterraintype in a shape , we can use the nodes+edges as borders. in the rotation image , we have to look if the center of the field is in the shape. So i think the number of fields in shapes will not be too much different.
but i can think of a last problem . if you create a shape that is too thin (a river which is only 1 field of water) , its image could be cutted if the direction is not good, of in another direction it could be too large that workers could not cross it any more in every place .
This happens because the walking distance of workers is not the same in every direction ....
Edited: 20150203, 11:20
Top
Quote



gnarfk
Joined: 20150105, 16:18
Posts: 37
Pry about Widelands
Location: France

Posted at: 20150203, 11:08
I just want to tell something about my ideas of TRANSLATIONS .
I made a little algorithm to help me find good translations vectors for multiplayer maps. i obtained interesting results.
for 4 or more players , there are a lot of possible vectors which lead to different configurations. i tried to find the ones that make the distance between starting positions the bigger possible.
here is the result i had for a 8player map obtained with this "optimal" translation vector. (the red points representing starting positions of the 8 players)
http://s30.postimg.org/4zh7lihb5/placing_players_with_translations.png
this map obtained by translations is COMPLETELY fair between the players . exact same distances, ressources, terrain , building sites , road configurations ....... and allow different fair starting positions for teams also.
Some people may tell that it will be too much repetitive , but if you attack an ennemy in one direction , it will not be symmetric ... and the configuration against another player in the map will not be the same.... (fairness doesn't mean exact symmetry in every direction ...)
we can find good vectors for any number of players (even 5 , 7 ....)
Edited: 20150203, 11:14
Top
Quote



einstein13
Joined: 20130729, 00:01
Posts: 1057
One Elder of Players
Location: Poland

Posted at: 20150203, 22:48
but i can think of a last problem . if you create a shape that is too thin (a river which is only 1 field of water) , its image could be cutted if the direction is not good, of in another direction it could be too large that workers could not cross it any more in every place .
This happens because the walking distance of workers is not the same in every direction ....
I know that. I need to test it first, then I can make another version of my work (this pdf/doc file).
But testing needs first code and graphic plots. If I test, I can tell you more, but for sure more important is family, work and exams So please be patient.
This is my 3rd idea the most simple and correct I imagined. Maybe somebody will have better
einstein13 calculations & maps packages: http://wuatek.noip.org/~rak/widelands/
Top
Quote



gnarfk
Joined: 20150105, 16:18
Posts: 37
Pry about Widelands
Location: France

Posted at: 20150204, 08:13
First : i want to have your opinion about these translations i just showed you before.
Secondly : i have an idea that may solve your problem . This involves another type of rotation , which is not linear .
In this map structure we have a distance represented by number of edges we have to walk.
It could be possible to imagine "kind of polar coordinates" of the type (angle , distance to walk) and have the rotation just be changing of this angle.
We have to find a good way to have this coordinate change , and to try if the results are good.
But in any case , i will not be as fair as the results obtained with symmetries , rotations of 60° , or as translations which , like i said before , are completely fair.
Top
Quote



einstein13
Joined: 20130729, 00:01
Posts: 1057
One Elder of Players
Location: Poland

Posted at: 20150204, 18:00
gnarfk wrote:
First : i want to have your opinion about these translations i just showed you before.
It is good to know that there is an "optimal" vector. But sometimes we need to make any other vector of tranlsation.
Secondly : i have an idea that may solve your problem . This involves another type of rotation , which is not linear .(...)
It could be possible to imagine "kind of polar coordinates" of the type (angle , distance to walk) and have the rotation just be changing of this angle.
This is not clear for me (I can't imagine this for the first glance), but I'm interested in the topic.
einstein13 calculations & maps packages: http://wuatek.noip.org/~rak/widelands/
Top
Quote



gnarfk
Joined: 20150105, 16:18
Posts: 37
Pry about Widelands
Location: France

Posted at: 20150204, 19:02
einstein13 wrote:
gnarfk wrote:
First : i want to have your opinion about these translations i just showed you before.
It is good to know that there is an "optimal" vector. But sometimes we need to make any other vector of tranlsation.
we can't do it for any vector. But i can easily say how to build the vectors which work.
Secondly : i have an idea that may solve your problem . This involves another type of rotation , which is not linear .(...)
It could be possible to imagine "kind of polar coordinates" of the type (angle , distance to walk) and have the rotation just be changing of this angle.
This is not clear for me (I can't imagine this for the first glance), but I'm interested in the topic.
to be honest , i think that the results will not perfect. But for aesthetic objective it can be enough .
Let me explain what i mean with these coordinates.
Let O be the origin point.
Then , a point M can be represented by these two coordinates :
the angle between the right horizontal line and the (OM) line.
the "distance" between O and M which is the number or edges we have to cross to go from O to M .
i think this is not too much hard to compute, but i don't know if the results will be good enough.
Top
Quote



einstein13
Joined: 20130729, 00:01
Posts: 1057
One Elder of Players
Location: Poland

Posted at: 20150204, 23:53
gnarfk wrote:
einstein13 wrote:
It is good to know that there is an "optimal" vector. But sometimes we need to make any other vector of tranlsation.
we can't do it for any vector. But i can easily say how to build the vectors which work.
If we want to translate all the map we can't get any vector.
But if we want to translate only small region why not?
Let me explain what i mean with these coordinates. (...)
i think this is not too much hard to compute, but i don't know if the results will be good enough.
It shouldn't be too complicated, but for sure we can't have good results for all cases:
 After rotation we don't have exact values of angles for discrete plane, so we will have some troubles when rotating.
 I'm not sure if 2 vectors rotated will not go into one as a result:
(My try with math & english)
 let f be a function: zigzag > polar (vectors)
 polar=f(zigzag)
 we can buil function f^1: polar > zigzag (vectors)
 z1, z2, ...  zigzag vectors
 p1, p2, ...  polar vectors
 then p1=f(z1), z2=f^1(p1)
 //This was the easiest part
 hypothesis:
 p2=f^1(z1)=f^1(f(p1)), then exists p1: p1!=p2 (not equal)
einstein13 calculations & maps packages: http://wuatek.noip.org/~rak/widelands/
Top
Quote



gnarfk
Joined: 20150105, 16:18
Posts: 37
Pry about Widelands
Location: France

Posted at: 20150205, 13:09
einstein13 wrote:
gnarfk wrote:
Let me explain what i mean with these coordinates. (...)
i think this is not too much hard to compute, but i don't know if the results will be good enough.
It shouldn't be too complicated, but for sure we can't have good results for all cases:
 After rotation we don't have exact values of angles for discrete plane, so we will have some troubles when rotating.
 I'm not sure if 2 vectors rotated will not go into one as a result:
(My try with math & english)
 let f be a function: zigzag > polar (vectors)
 polar=f(zigzag)
 we can buil function f^1: polar > zigzag (vectors)
 z1, z2, ...  zigzag vectors
 p1, p2, ...  polar vectors
 then p1=f(z1), z2=f^1(p1)
 //This was the easiest part
 hypothesis:
 p2=f^1(z1)=f^1(f(p1)), then exists p1: p1!=p2 (not equal)
i think we can solve the "2. I'm not sure if 2 vectors rotated will not go into one as a result:" problem.
We can define the angle in another way.
we define that the angle representing a turn is 6 .
then, each 60° angle is represented by 1.
Let M be a point , with the (natural) angle between horizontal line and (OM) being between 0° and 60°.
To go from O to M , we have to cross some edges. We define the angle with the proportion of "NE" edges crossed in all edges crossed.
For instance , if we have to go 5 times in NE direction , and 3 times in E direction , the (as defined here) angle will be 5/8 .
With this definition, the last problem is when this "proportion angle" doesn't allow to fall exactly on an exact point, we have to find a good way to choose how to round, in order to make sure that if we make 8 rotations of 45 ° ( of an angle of 2/3 in this way to measure angles ) , we fall exactly on the starting position.
Top
Quote
