Talk:Orthographic projection (cartography)
From Wikipedia, the free encyclopedia
[edit] Removing the C++ example
Would there be any objections to scrapping the C++ section? It's a bit off topic, and makes sense to <1% of the audience (myself included, and I understand code and GIS). I thought I'd add it here before doing it myself.+mwtoews 05:53, 11 January 2007 (UTC)
- Okay, I've removed the example. Here it is for the very few who would care:
The following [[source code]] fragment demonstrates this algorithm in [[C++]]:
// Loop through rows and columns of output image f_xy
// obtaining longitude and latitude at each (x, y) point.
for (i = 0; i < rows; ++i)
{
for (j = 0; j < cols; ++j)
{
// Here, (LON, LAT) is a grid of longitudes
// and latitudes defined at each (x[i], y[j])
// in the projection plane. Determined using
// the inverse orthographic projection.
lon_pt = LON(i, j);
lat_pt = LAT(i, j);
//
// Interpolate inside image(LON, LAT)
bool in_domain = DOM(i, j);
if (in_domain)
{
//////////////////////////////
// Longitudinal periodicity //
//////////////////////////////
double test_lon_pt = lon_pt;
while (test_lon_pt > lon_max)
test_lon_pt -= 2*pi;
while (test_lon_pt < lon_min)
test_lon_pt += 2*pi;
// In case of while loop overshoot
if (test_lon_pt > lon_max)
test_lon_pt = lon_max;
if (test_lon_pt < lon_min)
test_lon_pt = lon_min;
lon_pt = test_lon_pt;
//
// Pole points might not be defined, so just go to the
// highest +/- latitutude values available.
if (lat_pt > lat_max)
lat_pt = lat_max;
if (lat_pt < lat_min)
lat_pt = lat_min;
//
// Invoke, for example, bilinear interpolation to obtain f(x,y)
f_xy_pt = bilinear(image, lat, lon, image_rows, image_cols, lat_pt, lon_pt);
f_xy(i, j) = f_xy_pt;
}
}
}

