FAQ по Высадке американцев на Луну
56,629 71
 

  CodeGrinder ( Слушатель )
26 авг 2009 15:33:06

Тред №140228

новая дискуссия Дискуссия  209

Ну что, излагаю доказательство с кратером. (См. также более сильную версию доказательства).

1. Цели: Ищем на снимках кратер отмеченный зелёной стрелкой (изображение вырезано из снимка с LROC).


2. Проверяем видимость. На левом краю снимка, ближе к горизонту виден кратер с тенью на восточной стенке.


Находим его на снимке LROC (отмечен красной стрелочкой).


3. Проверяем что мы правильно сопоставили его со снимком LROC (это совмещение снимка LROC с официальной схемой места):


4. Замечаем что на снимке LROC восточная (правая) часть склона этого кратера освещена даже слабее чем восточная часть склона искомого кратера. Также отмечаем что тень заметна даже в правом углу кратера, где уклон ещё меньше, и что даже маленькие неровности хорошо видны. Следовательно, уклон восточной стороны в кратере, которая значительно темнее ровного места  на снимке с поверхности, меньше, чем в кратере который на снимках отсутствует. Это означает, что восточная часть кратера отмеченного зелёной стрелочкой должна быть видна на соответствующих снимках: http://history.nasa.…0-5888.jpg или http://history.nasa.…0-5889.jpg. Эти снимки являются частью 12 o'clock pan.

5. Место съёмки находится в районе двойного кратера, судя по приведённой панораме - на северной части вала, или немного севернее. Следовательно искомый кратер находится на фото за восточной частью двойного, немного левее или правее. Чтобы в этом убедиться достаточно провести две прямых линии от места съемки к крайним точкам искомого кратера на снимке LROC. Также искомый кратер должен находиться значительно ниже линии горизонта в силу его близости к наблюдателю. Отмечаем также, что судя по месту съемки восточная часть двойного кратера должна быть видна не как равноудалённая от фотографа. Если же фотографа поместить немного южнее, южная часть вала кратера будет закрывать нафиг всё за ним, а на панораме мы этого не наблюдаем.

6. Убеждаемся что в месте где должен находиться искомый кратер нет ни малейшего намёка на него, ни тени, ни перепада освещённости, ни контура. Убеждаемся что ни на каких фото НАСА на которых заснято нужное место или часть его никаких даже намёков на кратер нет.

7. Делаем вывод, что снимок с поверхности не совпадает со снимком с орбиты.

Обновление.
Цитата: codegrinder от 07.09.2009 07:18:27
Кстати, к вопросу о положении "невидимого кратера" (выделен красным, наблюдатель стоит за восточной частью двойного кратера, высот нет, поверхность плоская):


Я думаю теперь очевидно, что те кратеры которые видны на фотографиях в этом месте просто не тянут по размеру.

Это вид двойного кратера из LM (фокусное расстояние 81,2, это я всё про то что не влазит он в кадр):

Это исходный текст подпрограммы отрисовки, тому кто знаком с программированием не составит труда адаптировать его под себя, кому надо пояснения - пишите:

#define SCALE_FACTOR 10000

HBITMAP gLrocBitmap = NULL;
int gX = 511*SCALE_FACTOR;
int gY = 508*SCALE_FACTOR;
int gObserverHeight = int(5.95*SCALE_FACTOR);
int gFocus = int(0.0612*SCALE_FACTOR);
int gAngle = 0;
int gAngleDown = 15;
int gK = 1;
int tsin[360];
int tcos[ARRAYSIZE(tsin)];

// инициализация
gLrocBitmap = (HBITMAP)LoadImage(hInstance, MAKEINTRESOURCE(IDB_BITMAP_LROC), IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION);
for (int i = 0; i < ARRAYSIZE(tsin); i++)
{
double angle = i*3.14159265358979/180;
tsin[i] = int(sin(angle)*SCALE_FACTOR);
tcos[i] = int(cos(angle)*SCALE_FACTOR);
}

// отрисовка
void onPaint(HDC hdc, int cx, int cy)
{
DIBSECTION ds;
if (sizeof(ds) == GetObject(gLrocBitmap, sizeof(ds), &ds)
&& 24 == ds.dsBm.bmBitsPixel)
{
// using fixed point
int frameSize = int(0.053*SCALE_FACTOR);
int width = ds.dsBm.bmWidth;
int height = ds.dsBm.bmHeight;
int picsize = min(cx, cy);
int linesize = (picsize*3+3) & ~3;
BYTE *pPicture = (BYTE *)VirtualAlloc(NULL, linesize * picsize, MEM_COMMIT, PAGE_READWRITE);
if (NULL != pPicture)
{
BYTE *pBitmap = (BYTE *)ds.dsBm.bmBits;
int srcLineSize = ds.dsBm.bmWidthBytes;
for (int ys = -(picsize>>1); ys < (picsize>>1); ys++)
{
BYTE *pDstLine = pPicture + (ys + (picsize>>1)) * linesize;
int y = ys * frameSize / picsize;
double angle = atan((double)y / gFocus);
angle += gAngleDown*3.14159265358979/180;
if (angle > 3.14159265358979/180)
{
//int ty = (gFocus * gObserverHeight / y);
int ty = int(gObserverHeight/tan(angle)/gK);
if (ty < (512*500/455/gK) * SCALE_FACTOR)
{
ty = ty*gK*455/500;
for (int xs = 0; xs < picsize; xs++)
{
int x = (xs-(picsize>>1)) * frameSize / picsize;
int tx = x * ty / gFocus;
// rotate tx and ty
int _sin = tsin[gAngle];
int _cos = tcos[gAngle];
int rx = int(((__int64)gX*SCALE_FACTOR+(__int64)tx*_cos-(__int64)ty*_sin)/(SCALE_FACTOR*SCALE_FACTOR));
int ry = int(((__int64)gY*SCALE_FACTOR-(__int64)tx*_sin-(__int64)ty*_cos)/(SCALE_FACTOR*SCALE_FACTOR));
BYTE *pSrc = pBitmap+(height-1-ry)*srcLineSize+rx*3;
BYTE *pDst = pDstLine+xs*3;
*pDst++ = *pSrc++;
*pDst++ = *pSrc++;
*pDst = *pSrc;
}
}
}
}
int mode = SetStretchBltMode(hdc, COLORONCOLOR);
BITMAPINFOHEADER bmih =
{
sizeof(bmih), picsize, -picsize, 1, 24, BI_RGB, 0, 0, 0, 0, 0
};
int w = (cx-picsize)>>1;
RECT rc = { 0, 0, w, cy };
rc.bottom -= w;
StretchDIBits(hdc, w, 0, picsize, picsize,
0, 0, picsize, picsize, pPicture,
(BITMAPINFO *)&bmih, DIB_RGB_COLORS, SRCCOPY);
StretchDIBits(hdc, 0, cy-w, w, w,
gX/SCALE_FACTOR-w/4/2, height-gY/SCALE_FACTOR-w/4/2, w/4, w/4, ds.dsBm.bmBits,
(BITMAPINFO *)&ds.dsBmih, DIB_RGB_COLORS, SRCCOPY);
SetStretchBltMode(hdc, mode);
VirtualFree(pPicture, 0, MEM_RELEASE);
HBRUSH brush = CreateSolidBrush(0xffffff);
FillRect(hdc, &rc, brush);
SetRect(&rc, (cx+picsize)>>1, 0, cx, cy);
FillRect(hdc, &rc, brush);
DeleteObject(brush);

brush = CreateSolidBrush(0x0000ff);
SetRect(&rc, w/2, cy-w/2, w/2+3, cy-w/2+3);
FillRect(hdc, &rc, brush);
DeleteObject(brush);

TCHAR txt[256];
wsprintf(txt, TEXT("H: %d.%.2d m"), gObserverHeight/SCALE_FACTOR, (gObserverHeight%SCALE_FACTOR)*100/SCALE_FACTOR);
TextOut(hdc, 0, 0, txt, lstrlen(txt));
wsprintf(txt, TEXT("F: %d.%d mm"), gFocus/10, gFocus%10);
TextOut(hdc, 0, 20, txt, lstrlen(txt));
wsprintf(txt, TEXT("angle: %d"), gAngleDown);
TextOut(hdc, 0, 40, txt, lstrlen(txt));
wsprintf(txt, TEXT("K: %d"), gK);
TextOut(hdc, 0, 60, txt, lstrlen(txt));
}
}
}

// реакция на клавиши:

case VK_LEFT:
gAngle += 3;
if (gAngle >= ARRAYSIZE(tsin))
{
gAngle -= ARRAYSIZE(tsin);
}
InvalidateRect(hWnd, NULL, FALSE);
break;
case VK_RIGHT:
gAngle -= 3;
if (gAngle < 0)
{
gAngle += ARRAYSIZE(tsin);
}
InvalidateRect(hWnd, NULL, FALSE);
break;
case VK_UP:
gX -= tsin[gAngle];
gY -= tcos[gAngle];
InvalidateRect(hWnd, NULL, FALSE);
break;
case VK_DOWN:
gX += tsin[gAngle];
gY += tcos[gAngle];
InvalidateRect(hWnd, NULL, FALSE);
break;
case VK_ADD:
gObserverHeight += SCALE_FACTOR/20;
if (gObserverHeight > 30*SCALE_FACTOR)
{
gObserverHeight = 30*SCALE_FACTOR;
}
InvalidateRect(hWnd, NULL, FALSE);
break;
case VK_SUBTRACT:
gObserverHeight -= SCALE_FACTOR/20;
if (gObserverHeight < SCALE_FACTOR)
{
gObserverHeight = SCALE_FACTOR;
}
InvalidateRect(hWnd, NULL, FALSE);
break;
case VK_TAB:
if (int(0.0612*SCALE_FACTOR) == gFocus)
{
gFocus = int(0.0812*SCALE_FACTOR);
}
else
{
gFocus = int(0.0612*SCALE_FACTOR);
}
InvalidateRect(hWnd, NULL, FALSE);
break;
case VK_PRIOR:
gAngleDown -= 1;
if (gAngleDown < 0)
{
gAngleDown = 0;
}
InvalidateRect(hWnd, NULL, FALSE);
break;
case VK_NEXT:
gAngleDown += 1;
if (gAngleDown > 45)
{
gAngleDown = 45;
}
InvalidateRect(hWnd, NULL, FALSE);
break;
case VK_HOME:
if (gK > 1)
{
gK--;
InvalidateRect(hWnd, NULL, FALSE);
}
break;
case VK_END:
if (gK < 20)
{
gK++;
InvalidateRect(hWnd, NULL, FALSE);
}
break;


Отредактировано: CodeGrinder - 20 авг 2014 12:59:48
  • +0.05 / 1
  • АУ
ОТВЕТЫ (1)
 
 
  CodeGrinder ( Слушатель )
07 окт 2009 14:04:31
03.09.2010
Отредактировано.
На данный момент есть некоторые основания полагать, что доказательство не является правильным, так, в частности, всё ещё не удалось получить рельеф на основе алгоритмов машинного зрения.



Более сильная версия доказательства.

Выбирал только самое существенное, но всё равно получилось много.

















  • +0.05 / 1
  • АУ