Archaeoastronomy and Sketchup II
-
Yes, it can definnitely be done. It just might be a lot of work. And I'm still trying to comprehend what you need exactly. I think you had mentioned earlier that you wanted to rotate buildings to point at a certain celestial body. That's fine, if the angles can be determined from your data (which I know it can). So what star do things align to? Is it possible to generate the coordinates automatically or read them from somewhere? Or does it have to be entered by hand?
I think what my brain is unseure of is how does the data you have match up with the model? if you have a series of coordinates, how would you tell the model what pieces align to what coordinates? Any thoughts on how that would be achieved?
Chris
-
Hi Chris and thank you for your reply and letting me know that it can be done. I’m sorry if in my first mail was not clear enough. You are very right on thinking how to match the data to be used with the model. Thinking on the answer, I concluded that using the Azimuth-Altitude coordinate system is better than the one I mentioned in my first mail because now there are things that are common to both SU space and star data, which can be the start of the Plug-in:
A NORTH: The Azimuth-Altitude coordinate system used to locate a star needs a geographical north (http://en.wikipedia.org/wiki/File:Azimuth_(PSF_2.svg) related to the point of observation, and the SketchUp space has this north that can be indicated in the Location section of the Model Info window. As you can see in the image of the wiki link, the Azimuth is an angular measure and starts at the north and rotates towards east. So at the north the Azimuth is 0° and at the east is 90°.
A HORIZONTAL PLANE: To have the Altitude part of a star coordinate (which is another angular measure and is also known as elevation above the horizon or elevation angle), a horizontal plane is needed, which is the one that it is located in the 0,0,0 of the X,Y,Z space coordinate system of SketchUp.
A GEOGRAPHIC LOCATION: A geographic location is needed to calculate the Azimuth and Altitude of a star to be observed in that particular location, and the SketchUp space has a geographic location that can be indicated in the Location section of the Model Info window.
With this things in common, I will try to be clearer with what I wish to have as a Plug-in with the following example, using the type of coordinates mentioned above. Let’s say I want the edge “a-b” of a plane to point to a star with an Azimuth and Altitude coordinates of 51.8° and 42.0° respectively (Fig. 1). The final result is showed in Fig. 2. Besides an edge, a plane (fig. 3) can also face a star (fig. 4). In this last case, if the star where to be the sun, it would be something like the “Always Face Camera” command but instead of looking at the camera, it would face the sun. SketchUp internally calculates the coordinates of the sun according to a geographic location, so I think is a matter of simple programming to make a plane to face it.
About what you ask about generation of the coordinates, there is a lot of free and open source software that calculate them, and it would be great if the results of the calculations that these programs can be showed inside of sketchup. Unfortunately, I’m not a programmer and don’t know if this can be done, but I can give you a list of the software that is freely available. For ease of use, it is preferred this way that to run them separately and input the coordinates by hand to a possible SU plug-in. Normally, this programs outputs in tabulated form the name and coordinates of the stars, so it would be great if this table can be looked inside of sketchup, click a particular star of the table, assign it's coordinates to an edge or plane, and see how they automatically align or face the star. Let me know if this explanation is of any help. Regards.
@chris fullmer said:
Yes, it can definnitely be done. It just might be a lot of work. And I'm still trying to comprehend what you need exactly. I think you had mentioned earlier that you wanted to rotate buildings to point at a certain celestial body. That's fine, if the angles can be determined from your data (which I know it can). So what star do things align to? Is it possible to generate the coordinates automatically or read them from somewhere? Or does it have to be entered by hand?
I think what my brain is unseure of is how does the data you have match up with the model? if you have a series of coordinates, how would you tell the model what pieces align to what coordinates? Any thoughts on how that would be achieved?
Chris
-
This is parallel with your sun-tracker thread...
It's relatively straightforward to get the vector from the face's center towards a star from its two angles [azimuth and altitude] in turn derived from the time/date/location - it's basic math and/or two rotation transformations - then the face will have it's normal facing the specified star, or sun or whatever point in the sky you want...
-
That's right TIG, is almost the same as my other thread requesting a "Face sun" plug-in. As a matter of fact, Thomas was kind enough to make it today:
http://forums.sketchucation.com/viewtopic.php?f=323&t=27499
and yes, to make a Plug-in that faces stars instead of the Sun is just some math calculation away. I can provide the necesary math to convert coordinates (here is something http://en.wikipedia.org/wiki/Horizontal_coordinate_system ) and the software that calculates this coordinates depending on what star, but I don't know how to program.
@tig said:
This is parallel with your sun-tracker thread...
It's relatively straightforward to get the vector from the face's center towards a star from its two angles [azimuth and altitude] in turn derived from the time/date/location - it's basic math and/or two rotation transformations - then the face will have it's normal facing the specified star, or sun or whatever point in the sky you want...
-
Chris:
A very similar request:
http://forums.sketchucation.com/viewtopic.php?f=323&t=27477in which a "Face sun" plug-in I needed was kindly resolved by Thomasthomas:
http://forums.sketchucation.com/viewtopic.php?f=323&t=27499
Today he made a plug-in in which if a plane is selected, it would face directly to the current sun position. Can this plug-in be of any use to start a "Face star" script? Regards.
@chris fullmer said:
Yes, it can definnitely be done. It just might be a lot of work. And I'm still trying to comprehend what you need exactly. I think you had mentioned earlier that you wanted to rotate buildings to point at a certain celestial body. That's fine, if the angles can be determined from your data (which I know it can). So what star do things align to? Is it possible to generate the coordinates automatically or read them from somewhere? Or does it have to be entered by hand?
I think what my brain is unseure of is how does the data you have match up with the model? if you have a series of coordinates, how would you tell the model what pieces align to what coordinates? Any thoughts on how that would be achieved?
Chris
-
I will modify my plugin to accommodate your requirements if I have time this weekend, and you provide the following:
- Names of variable to be input (information regarding north is here, or assumed as yaxis from point of origin as below):
- Equations that calculate a point as x, y, z coordinates from the entire model's origin as 0,0,0 using the variables you identify above:
The plugin should work by 1. your selection of the component to be rotated along its zaxis, 2. inputing at a prompt your variables, and 3. the component will rotate and point to the coordinates you provide.
Btw, I don't understand the practical value of rotating a model of a astronomical device within the model's computer space. While what is displayed may be accurate, it may as well be arbitrary unless included with the model of the device, the model of the actual place of the device. I didn't read your entire post, as I am intellectually challenged when it comes to lengthy esoteric discussions (unless they are my own :-), but glad to help if possible.
-
Hi Honoluludesktop.
Thank you for willing to spend some time in the development of this plug-in. It is of no interest or use to place stars in the model. The interest is to rotate a plane located in a specific geographical place and make it face a specific star. Its functionality would be like the “Face Sun” plug-in that was created today:
http://forums.sketchucation.com/viewtopic.php?f=323&t=27499
but instead of “Face Sun” it would be “Face Star”.
Also as you state, there is no practical value on rotating the entire model of an astronomical device. What I want to do is rotate a single plane of this astronomical device (not all of it) towards a star.
I will provide with all you are requesting. But before I do and just to be sure, I want to know if you already read this part of the thread:
http://forums.sketchucation.com/viewtopic.php?f=180&t=27480#p238110
in which trough images the Azimuth and Altitude coordinates system is explained. If you have not let me know if you will still need the same things you are requesting or something different. Regards.@honoluludesktop said:
I will modify my plugin to accommodate your requirements if I have time this weekend, and you provide the following:
- Names of variable to be input (information regarding north is here, or assumed as yaxis from point of origin as below):
- Equations that calculate a point as x, y, z coordinates from the entire model's origin as 0,0,0 using the variables you identify above:
The plugin should work by 1. your selection of the component to be rotated along its zaxis, 2. inputing at a prompt your variables, and 3. the component will rotate and point to the coordinates you provide.
Btw, I don't understand the practical value of rotating a model of a astronomical device within the model's computer space. While what is displayed may be accurate, it may as well be arbitrary unless included with the model of the device, the model of the actual place of the device. I didn't read your entire post, as I am intellectually challenged when it comes to lengthy esoteric discussions (unless they are my own , but glad to help if possible.
-
construsol, I took a quick looked at your link, and as I said, it is more involved then my attention span:-). I am not one of the rugy / math wizards here, but have written a plugin that does as I posted above. I will try to help you, but you can't depend on me to understand the math, or spend too much time on your project. Incidentally, no trig, differentials, factoring, etc. as the extent of my experience with ruby math is limited to equations using basic arithmetic. Sorry, no guarantees, just an offer of free help.
-
Any help is greatly welcomed. As you posted above, I can settle for a plug-in that can point a SU component along its Zaxis to any point selected within the SU model space. That point would be determined, as also explained above, by the two coordinates Azimuth and Altitude that take the north and horizontal plane (both included in Sketchup space) as it's reference.
To make things simpler, the coordinates of the stars would be input by hand in a SU dialog box (or similar). No need for SU to calculate nothing more, I can get this coordinates with other software for now.
@honoluludesktop said:
construsol, I took a quick looked at your link, and as I said, it is more involved then my attention span:-). I am not one of the rugy / math wizards here, but have written a plugin that does as I posted above. I will try to help you, but you can't depend on me to understand the math, or spend too much time on your project. Incidentally, no trig, differentials, factoring, etc. as the extent of my experience with ruby math is limited to equations using basic arithmetic. Sorry, no guarantees, just an offer of free help.
-
OK, assuming the model's yaxis is north, and at the origin of the model space, I will send you a plugin the request the coordinates of a point on a line between the star and the origin of the model space.
-
just a small thing. The Azimuth angle starts at north, so, can the SU north be used as this starting point? (The orange line called "North angle" in the Location Tab of the Model Info window) instead of the Y axis of the model? Hope this can be done. If not, the Y axis of SU space is fine.
@honoluludesktop said:
OK, assuming the model's yaxis is north, and at the origin of the model space, I will send you a plugin the request the coordinates of a point on a line between the star and the origin of the model space.
-
Because the plugin I am modifying contains a lot of stuff I am working on, I will pm it to you for your use only. Its too hard to clean up, and embarrassing to post here as I just left everything in. Use "my_star_pointer" beta v 1.0 at your own risk. Seems to worked on my WinXP pc, good luck with your school work, hope this is of help.
Btw, because you supply the coordinates, north shouldn't matter to the plugin, I think:-)
-
Hi.
As posted in the images above, the star coordinates are two, and your Plug-in asks for three. Starting from the 0,0,0 origin of the SU space and the two star coordinates is enough to get the vector that points towards the star and thus make a plane point to that direction by aligning it's Zaxis to this vector. Thank you anyway for trying to help, I appreciate it.
@honoluludesktop said:
Because the plugin I am modifying contains a lot of stuff I am working on, I will pm it to you for your use only. Its too hard to clean up, and embarrassing to post here as I just left everything in. Use "my_star_pointer" beta v 1.0 at your own risk. Seems to worked on my WinXP pc, good luck with your school work, hope this is of help.
Btw, because you supply the coordinates, north shouldn't matter to the plugin, I think:-)
-
construsol, Guess I misunderstood, when you wrote this:
"To make things simpler, the coordinates of the stars would be input by hand in a SU dialog box (or similar). No need for SU to calculate nothing more, I can get this coordinates with other software for now."
I took that to mean you had software to calculate the star's coordinates as a point (in the form of x,y,z) in space. As said before, if you provide the equationsthat solve for the coordinate point using azimuth and altitude, then the plugin can be modified to work as you need it. Please read my previous post about the level of math, and get some math guy to help you.
Btw, the last picture in the set you posted seemed to be a list of coordinate points. What do those numbers refer to?
-
I might be able to help a bit with the math, although I'm definitely no mathmatician.
@honoluludesktop:
if I was able to get the Point3d, would your plugin be able to handle the rest? -
The plugin utilizes point3d. For his purpose, it requires equations in the form:
coordinate x for 3d point as x = equation as function of variables
coordinate y for 3d point as y = equation as function of variables
coordinate z for 3d point as z = equation as function of variablesSorry to be redundant, just trying to be sure that we communicate. As previously posted keep the math to algebra. Btw, you don't need the location of the star, only a point on the line to it.
-
Hi again.
There is no need to have a point in x,y,z space representing a star, just a vector that is directed to it. If this vector starts at 0,0,0 of the Sketchup space you only need two angle measures to direct it to the star.
Let's say that an astronomy software tells that a certain star of interest has an Azimuth of 51.8 degrees and a Altitude of 42.0 degrees, and I want a plane's Zaxis to point to it. So we have the coordinates, a plane and a North (orange line in Fig. 1). Please note that the north can be at a random angle from the green and red axis.
Then, starting from the north, a vector fixed in one of it's end to 0,0,0 starts to rotate around the blue axis counterclockwise (towards the east) until rotating 51.8 degrees. That is the Azimut of the star (Fig. 2). The vector is still in the horizontal plane.
Then, this vector still fixed to 0,0,0 rises 42.0 degrees from the horizontal. That is the Altitude of the star (Fig. 3). Now the vector is pointing towards the star of interest.
Now what is left is to align the Zaxis of the plane with the vector (Fig. 4).
That's it. Just make rotate a vector around two coordinates and align the Zaxis of a plane to it.
-
construsol, What you say is true, but the existing plugin is written to use 3d Cartesian coordinate information. Only with the equations to change your variables into coordinates values (x,y,z) can it be easily adapted. I am willing to adapt the existing plugin, but not incline to write a new plugin. Sorry.
It's best that I stop posting, and let someone more capable help you.
-
Looking at this last diagram of yours, it looks like you want a script that orients a face to be perpendicular to a vector that is pointing towards a star. Is that the correct idea?
The only tricky part is really figuring out how you have your data collected about what that vector is. If it requires math using old calendar dates, you'll need to find that info on how that math is accomplished (maybe you already postefd that?, I have not been following too closely). I think none of us want to learn how to calculate the position of the stars 8,000 years ago. You need to provide that expertise somehow. So if you had a link that explained it all out mathematically and simply (most of us are not serious mathematicians), that would be great.
And lastly, you must have a list of stars and dates you want to examine? Or you plan on entering that in manually? Or something. But you need to figure out how your data is organized and how you can get it into a useable list, that can be read by a computer.
Again, this is all very do-able (I've already written a script that orients a face perpendicular to any given vector called perpendicular faces, for example). Just help us with how to calculate the vectors better, and say how you want to input your data.
-
That is the correct idea when you say that what I want is a script that orients a face to be perpendicular to a vector that is pointing towards a star. On the other hand, you don’t have to learn how to calculate the position of the stars thousands of years ago. It would be unfair of me that besides having your invaluable help making a script to expect from you to learn astronomy. I have the list of stars and its coordinates, so I will provide them and I enter them manually in SU. So no complex math, no astronomy, no mathematical expertise from your part, nothing to calculate, even forget all the astronomy theme of the previous post. Just need a script that tells a vector to rotate around blue axis given an angular measure and then raise that vector with another angular measure as I explained with the pictures in my last post, and lastly align the Zaxis of a given plane to the vector.
@chris fullmer said:
Looking at this last diagram of yours, it looks like you want a script that orients a face to be perpendicular to a vector that is pointing towards a star. Is that the correct idea?
The only tricky part is really figuring out how you have your data collected about what that vector is. If it requires math using old calendar dates, you'll need to find that info on how that math is accomplished (maybe you already postefd that?, I have not been following too closely). I think none of us want to learn how to calculate the position of the stars 8,000 years ago. You need to provide that expertise somehow. So if you had a link that explained it all out mathematically and simply (most of us are not serious mathematicians), that would be great.
And lastly, you must have a list of stars and dates you want to examine? Or you plan on entering that in manually? Or something. But you need to figure out how your data is organized and how you can get it into a useable list, that can be read by a computer.
Again, this is all very do-able (I've already written a script that orients a face perpendicular to any given vector called perpendicular faces, for example). Just help us with how to calculate the vectors better, and say how you want to input your data.
Advertisement