• Добро пожаловать на Черная дыра.
 

Ни о чем и ИВМЗП

Автор zenixt, 24.09.2010 18:17:39

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

zenixt

Я не утверждаю, что Эйнштейн не прав. Подтвердить или опровергнуть его правоту могут только факты. Я хочу показать, что Эйнштейн может быть не прав. Строго говоря, есть три варианта, когда скорость света постоянна во всех системах отсчета.
1. Время не зависит от системы отсчета. x'=A*x+B*t.
2. Только время зависит от системы отсчета. t'=M*x+N*t.
3. x'=A*x+B*t и t'=M*x+N*t.
То есть в теории относительности надо исследовать не только 3 вариант, а все три варианта.
 Бог с ним, отложим на время релятивистские преобразования. Может быть и без них удастся растолковать Dmitry P., в чем его логическая ошибка.
 Перейдем в систему отсчета заряда. Независимо от того является ли его система отсчета инерциальной или нет, он в ней неподвижен. Следовательно, в его системе отсчета магнитная индукция, создаваемая этим зарядом, во всех точках пространства равна нулю. Но вот когда в его системе отсчета появится второй заряд, этот второй заряд будет двигаться, следовательно, для первого заряда являться элементом тока, со всеми вытекающими отсюда последствиями.
 Неужели так сложно это понять? Так сложно понять, что нельзя взять наобум инерциальную систему отсчета. Она обязательно должна быть привязана к заряду.
ЗВЕЗДЫ ЗОВУТ!!!
Я знаю непреложную истину - если цыпленок не сумеет выбраться из яйца, он погибнет, если ребенок не сумеет выбраться из лона матери, он утащит на тот свет и ее.

КотКот

Новое сканирование книги Кроля
http://kotkot58.narod.ru/indexKrol.html
об основах КМ
Галактоходы --- вперед !!!

zenixt

Эх, говорила мне мама, не откладывай на потом. Надо было структуририровать переменные сразу после выяснения количества передаваемых. Таперача лишней работы по наведению порядка изрядно прибавилось.
 Не понимаю одного. Понятно, что не существует готовых программ без ощибок. Обработчик исключений позволяет резко увеличить надежность готовой программы. Но на этапе разработки он только мешает. Любое исключение в этом случае по моему мнению  должно вызывать останов выполнения, потому что ошибки гораздо проще выявлять по ходу их возникновения.
ЗВЕЗДЫ ЗОВУТ!!!
Я знаю непреложную истину - если цыпленок не сумеет выбраться из яйца, он погибнет, если ребенок не сумеет выбраться из лона матери, он утащит на тот свет и ее.

zenixt

Ежик в тумане. Погряз в обработке исключений. Не, я точно шел другим путем, потому, наверное, ни к чему не пришел. :lol: Но с точки зрения дальнейших действий, сейчас я занимаюсь дурью, потому что никакого деления на ноль не будет - это я хорошо помню, и даже постепенно припоминаю, как это делается. Но это полезная дурь, требующая углубляться в изучение С++
 Тема пока особого внимания не заслуживает. Большое спасибо Dmitry P. и vlad7308 за проявленный интерес.
 Нет я, разумеется, буду обновлять Пример 3, когда будут появляться существенные изменения, а так, ради дела приходится отказываться от всего, что отвлекает, особенно от инета.  :(
 И напоследок. Мне тут в голову Такая мысль пришла в голову  :idea: Эх, чего она не пришла мне лет 15 назад.
 Ведь на компе, именно в С и Ассемблере векторами можно оперировать непосредственно. Например, возьмем векторное произведение A*i*B*j. К i и j можно применить логическую операцию. Скорее всего, придется задумывать алгоритм с нуля, если идея окажется плодотворной.  :roll:
ЗВЕЗДЫ ЗОВУТ!!!
Я знаю непреложную истину - если цыпленок не сумеет выбраться из яйца, он погибнет, если ребенок не сумеет выбраться из лона матери, он утащит на тот свет и ее.

zenixt

Родила царица в ночь
Не то сына не то дочь,
Не лягушку, не зайчонка,
А сего алгоритменка. :D

ПРИМЕР 4.
Цитировать// atom0View.cpp : implementation of the CAtom0View class
//

#include "stdafx.h"
#include "atom0.h"

#include "atom0Doc.h"
#include "atom0View.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
////
  #include "cmath"
/////////////////////////////////////////////////////////////////////////////
int i5_znm=0;
int i6_znm=0;
int fl_turn1=0;
// CAtom0View

IMPLEMENT_DYNCREATE(CAtom0View, CView)

BEGIN_MESSAGE_MAP(CAtom0View, CView)
   //{{AFX_MSG_MAP(CAtom0View)
      // NOTE - the ClassWizard will add and remove mapping macros here.
      //    DO NOT EDIT what you see in these blocks of generated code!
   //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAtom0View construction/destruction

CAtom0View::CAtom0View()
{
   // TODO: add construction code here

// Заполнение структуры BITMAP данными, так как CreateBitmapIndirect
// использует эти данные.
   BITMAP bm;
   bm.bmType=0;
   bm.bmWidth=400;
   bm.bmHeight=400;
   bm.bmWidthBytes=155;
   bm.bmPlanes=1;
   bm.bmBitsPixel=16;
   bm.bmBits=NULL;
// Так как CreateBitmap сильно тормозит на моем компе,
// я воспользовался
Bitmap.CreateBitmapIndirect(&bm);
#if 1
//Инициализация параметров 1го контура
   k1.x1_znm=150;k1.y1_znm=150;k1.z1_znm=150;
   k1.x3_znm=150;k1.y3_znm=150;k1.z3_znm=151;
   k1.r1_znm=100;k1.dl0_znm=1.0;k1.dl1_znm=1.0;
   k1.A_znm=0;k1.B_znm=10;k1.C_znm=0;
   k1.D_znm=-k1.A_znm*k1.x1_znm-k1.B_znm*k1.y1_znm-k1.C_znm*k1.z1_znm;
//Приводим длину линии вращения к длине r1_znm

if(fabs(k1.A_znm)>=fabs(k1.B_znm) && fabs(k1.A_znm)>=fabs(k1.C_znm)){
k1.x3_znm=(-k1.B_znm*k1.y3_znm-k1.C_znm*k1.z3_znm-k1.D_znm)/k1.A_znm;}

if(fabs(k1.B_znm)>fabs(k1.A_znm) &&   fabs(k1.B_znm)>=fabs(k1.C_znm)){
k1.y3_znm=(-k1.A_znm*k1.x3_znm-k1.C_znm*k1.z3_znm-k1.D_znm)/k1.B_znm;}

if(fabs(k1.C_znm)>fabs(k1.A_znm) &&   fabs(k1.C_znm)>fabs(k1.B_znm)){
k1.z3_znm=(-k1.A_znm*k1.x3_znm-k1.B_znm*k1.y3_znm-k1.D_znm)/k1.C_znm;}
//Приводим длину линии вращения к длине r1_znm
r11_znm=sqrt(pow((k1.x3_znm-k1.x1_znm),2)+pow((k1.y3_znm-k1.y1_znm),2)+
           pow((k1.z3_znm-k1.z1_znm),2));
r11_znm=k1.r1_znm/r11_znm;
k1.x3_znm=k1.x1_znm+(k1.x3_znm-k1.x1_znm)*r11_znm;
k1.y3_znm=k1.y1_znm+(k1.y3_znm-k1.y1_znm)*r11_znm;
k1.z3_znm=k1.z1_znm+(k1.z3_znm-k1.z1_znm)*r11_znm;
#endif
//Приводим длину N к длине r1_znm
r11_znm=sqrt(pow(k1.A_znm,2)+pow(k1.B_znm,2)+pow(k1.C_znm,2));
r11_znm=k1.r1_znm/r11_znm;
k1.A_znm=k1.A_znm*r11_znm;
k1.B_znm=k1.B_znm*r11_znm;
k1.C_znm=k1.C_znm*r11_znm;
//   k1.D_znm=-k1.A_znm*k1.x1_znm-k1.B_znm*k1.y1_znm-k1.C_znm*k1.z1_znm;
//r11_znm=sqrt(pow(k1.A_znm,2)+pow(k1.B_znm,2)+pow(k1.C_znm,2));

fl_znm=0;fl_turn=0;fl_N=30;//flB_0=0;

k1.x_znN=k1.x1_znm+k1.A_znm;
k1.y_znN=k1.y1_znm+k1.B_znm;
k1.z_znN=k1.z1_znm+k1.C_znm;
//////////////////////////////////
f0.r_znm=k1.r1_znm;f0.dl0_znm=k1.dl0_znm;f0.dl1_znm=k1.dl1_znm;
f0.x1_znm=k1.x1_znm;f0.y1_znm=k1.y1_znm;f0.z1_znm=k1.z1_znm;
f0.x_znm=k1.x3_znm;f0.y_znm=k1.y3_znm;f0.z_znm=k1.z3_znm;
//f0.x_help=k1.x3_znm;f0.y_help=k1.y3_znm;f0.z_help=k1.z3_znm;
f0.x_znN=k1.x_znN;f0.y_znN=k1.y_znN;f0.z_znN=k1.z_znN;
f0.x_help=f0.x_znN;f0.y_help=f0.y_znN;f0.z_help=f0.z_znN;
f0.A_znm=k1.A_znm;f0.B_znm=k1.B_znm;f0.C_znm=k1.C_znm;
f0.D_znm=k1.D_znm;
/////////////////////////////////////////////////
f0.C3_znm=f0.C_znm;
}

CAtom0View::~CAtom0View()
{
}
//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
BOOL CAtom0View::PreCreateWindow(CREATESTRUCT& cs)
{
   // TODO: Modify the Window class or styles here by modifying
   //  the CREATESTRUCT cs

   return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CAtom0View drawing

void CAtom0View::OnDraw(CDC* pDC)
{
   CAtom0Doc* pDoc = GetDocument();
   ASSERT_VALID(pDoc);
   // TODO: add draw code for native data here
//CAtom0View Catm0,Catm1;
//На усмотрение программиста
#if 0
//if(flCirq==0){
atmOtldka(pDC);
//}
#endif
   if(fl_turn==0){
   flCirq=0;
//Catm0.
   atmKntr1a(pDC);
//////////////////////////////////////////////////////////////////
   flCirq=1;
   f0.A_znm=f0.x_znm-f0.x1_znm;
   f0.B_znm=f0.y_znm-f0.y1_znm;
   f0.C_znm=f0.z_znm-f0.z1_znm;//flB_0=0;
//Catm1.
   atmKntr1b(pDC);
//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
#if 1
f1.r0_znm=sqrt(pow(f0.x_help-f0.x_znN,2)+pow(f0.y_help-f0.y_znN,2)+
           pow(f0.z_help-f0.z_znN,2));
   i5_znm++;
if(i5_znm<10){if(fabs(f1.r0_znm)<1)f1.fl0_znm=f1.fl0_znm;}
else{if(fabs(f1.r0_znm)<1){fl_turn1=10;}}

if(fl_turn1==10){
   f0.A_znm=0;f0.B_znm=100;f0.C_znm=0;
f0.D_znm=-f0.A_znm*f0.x1_znm-f0.B_znm*f0.y1_znm-f0.C_znm*f0.z1_znm;
   f1.fl0_znm=1;dl0_znm=35;dl_znm=35;
////////////////////////////////////////////////////////////////////
f1.A_znm=f0.A_znm;f1.B_znm=f0.B_znm;f1.C_znm=f0.C_znm;
f1.D_znm=f0.D_znm;
#include "atmKPztion.h"
//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
f1.x_znm=f0.x_znm;f1.y_znm=f0.y_znm;f1.z_znm=f0.z_znm;
#include "atmKntr0.h"
f0.x_znm=f1.x_znm;f0.y_znm=f1.y_znm;f0.z_znm=f1.z_znm;
///MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
f0.C3_znm=f0.C_znm;
//fl_turn=1;
f0.x_znN=f0.x1_znm+f0.A_znm;
f0.y_znN=f0.y1_znm+f0.B_znm;
f0.z_znN=f0.z1_znm+f0.C_znm;
f0.x_help=f0.x_znN;f0.y_help=f0.y_znN;f0.z_help=f0.z_znN;
i5_znm=0;
fl_turn1=0;
}
#endif
//////////////////////////////////////////////////////////////////
   }
}
#include "atmKntr1.h"
#include "atmKntr1b.h"
ЗВЕЗДЫ ЗОВУТ!!!
Я знаю непреложную истину - если цыпленок не сумеет выбраться из яйца, он погибнет, если ребенок не сумеет выбраться из лона матери, он утащит на тот свет и ее.

zenixt

atmData0.h
Цитироватьstruct Kntr0
   {
double a_znm;  double x_znm;  double x1_znm;
double b_znm;  double y_znm;  double y1_znm;
double c_znm;  double z_znm;  double z1_znm;

  double A_znm;  double x_help; double x_znN;
  double B_znm;  double y_help; double y_znN;
  double C_znm;  double z_help; double z_znN;
  double D_znm;

  double A3_znm;  double A2_znm;  double x2_znm;
  double B3_znm;  double B2_znm;  double y2_znm;
  double C3_znm;  double D2_znm;  double z2_znm;

  double A11_znm;  double r0_znm;  double dl0_znm;
  double A21_znm;  double r_znm;   double dl1_znm;
  double A31_znm;
};
Kntr0 f0;
atmData1.h
Цитироватьstruct Kntr1
   {
  double a_znm;  double x_znm;  double x_zna;
  double b_znm;  double y_znm;  double y_zna;
  double c_znm;  double z_znm;  double z_zna;

  double A_znm;  double A11_znm;   double A2_znm;
  double B_znm;  double A21_znm;   double B2_znm;
  double C_znm;  double A31_znm;   double D2_znm;
  double D_znm;  double z_help;      double A3_help;

  double x0_znm;  double x1_znm;  double x2_znm;
  double y0_znm;  double y1_znm;  double y2_znm;
  double z0_znm;  double z1_znm;  double z2_znm;

  double A3_znm;  double r_znm;
  double B3_znm;  double r0_znm;
  double C3_znm;  int   fl0_znm;};
Kntr1 f1;

  int k1_znm;int k2_znm;int k3_znm;
  int i_znm;int j_znm;
atmData2.h
Цитировать//проекции вектора N первого контура
//для следующего//координаты центра//координаты точки линии вращения
//положения N   // контура         /контура проходящей через его центр
struct Kontur   {
  double A_znm;  double x1_znm;  double x3_znm;
  double B_znm;  double y1_znm;  double y3_znm;
  double C_znm;  double z1_znm;  double z3_znm;
  double D_znm;  double r1_znm;  double dl0_znm;
  double dl1_znm;
//проекции вектора N первого контура
  double x_znN;
  double y_znN;
  double z_znN;
};
Kontur k1;
  int flCirq;      int fl_turn;
  int fl_znm;      int i4_znm;
  double dl_znm;      //int flB_0;
//  double x_znk;
  int fl_N;
  double r1_znk; double r11_znm;
unsigned char pData[320000];
char znm2[20];
char znm3[40];
atmKPztion.h(начало)
Цитироватьif(fabs(f1.C_znm)<=fabs(f1.A_znm) ||
   fabs(f1.C_znm)<=fabs(f1.B_znm)){
ЗВЕЗДЫ ЗОВУТ!!!
Я знаю непреложную истину - если цыпленок не сумеет выбраться из яйца, он погибнет, если ребенок не сумеет выбраться из лона матери, он утащит на тот свет и ее.

zenixt

atmKPztion.h(конец)
Цитироватьif(f1.B_znm>f1.C_znm){
if(f1.A_znm>f1.C_znm && f1.A_znmf1.C_znm && f1.A_znm>f1.B_znm)
   {f1.fl0_znm=2;goto a1;}
   }
   if(f1.B_znmf1.C_znm && fabs(f1.A_znm)>fabs(f1.B_znm))
   {f1.fl0_znm=2;goto a1;}
if(f1.A_znm>f1.C_znm && fabs(f1.A_znm)<=fabs(f1.B_znm))
   {f1.fl0_znm=4;goto a1;}
   }
   if(f1.B_znmif(f1.A_znm<=f1.C_znm && fabs(f1.A_znm)   {f1.fl0_znm=4;goto a1;}
if(f1.A_znm=fabs(f1.B_znm))
   {f1.fl0_znm=5;goto a1;}
   }
   if(f1.B_znm>=f1.C_znm){
if(f1.A_znm=fabs(f1.B_znm))
   {f1.fl0_znm=5;goto a1;}
if(f1.A_znm<=f1.C_znm && fabs(f1.A_znm)fabs(f1.A_znm) ||
   fabs(f1.C_znm)>fabs(f1.B_znm)){
   if(f1.C_znm>f1.B_znm){
if(f1.A_znm>f1.B_znm && f1.A_znmf1.B_znm && f1.A_znm>f1.C_znm)
   {f1.fl0_znm=2;goto a1;}
   }
   if(f1.C_znmf1.B_znm && fabs(f1.A_znm)>fabs(f1.C_znm))
   {f1.fl0_znm=2;goto a1;}
if(f1.A_znm>f1.B_znm && fabs(f1.A_znm)<=fabs(f1.C_znm))
   {f1.fl0_znm=6;goto a1;}
   }
   if(f1.C_znmif(f1.A_znm<=f1.B_znm && fabs(f1.A_znm)   {f1.fl0_znm=6;goto a1;}
if(f1.A_znm=fabs(f1.C_znm))
   {f1.fl0_znm=5;goto a1;}
   }
   if(f1.C_znm>=f1.B_znm){
if(f1.A_znm=fabs(f1.C_znm))
   {f1.fl0_znm=5;goto a1;}
if(f1.A_znm<=f1.B_znm && fabs(f1.A_znm)0){dl_znm=dl0_znm;}
else{dl_znm=-dl0_znm;}
   if(fabs(f1.x_znm-f1.x1_znm)fabs(f1.z_znm-f1.z1_znm)){
f1.z2_znm=f1.z_znm+dl_znm;f1.x2_znm=f1.x_znm;
f1.y2_znm=(-f1.A_znm*f1.x2_znm-f1.C_znm*f1.z2_znm-f1.D_znm)/f1.B_znm;
}
break;//   }
/////////////////////////////////////////////////////////////////////
case 2://   if(f1.fl0_znm==2){//else{
if((f1.z_znm-f1.z1_znm-f1.y_znm+f1.y1_znm)>=0){dl_znm=dl0_znm;}
else{dl_znm=-dl0_znm;}
   if(fabs(f1.y_znm-f1.y1_znm)fabs(f1.z_znm-f1.z1_znm)){
f1.z2_znm=f1.z_znm+dl_znm;f1.y2_znm=f1.y_znm;
f1.x2_znm=(-f1.B_znm*f1.y2_znm-f1.C_znm*f1.z2_znm-f1.D_znm)/f1.A_znm;
}
break;//   }
////////////////////////////////////////////////////////////////////
case 3://   if(f1.fl0_znm==3){
if((f1.y_znm-f1.y1_znm-f1.x_znm+f1.x1_znm)>=0){dl_znm=dl0_znm;}
else {dl_znm=-dl0_znm;}
   if(fabs(f1.x_znm-f1.x1_znm)fabs(f1.y_znm-f1.y1_znm)){
f1.y2_znm=f1.y_znm+dl_znm;f1.x2_znm=f1.x_znm;
f1.z2_znm=(-f1.A_znm*f1.x2_znm-f1.B_znm*f1.y2_znm-f1.D_znm)/f1.C_znm;
}
//На усмотрение программиста
#if 0
if(flCirq==1){
atmOtldka(pDC);
}
#endif
break;//   }
///////////////////////////////////////////////////////////////////
case 4://if(f1.fl0_znm==1){
if((f1.z_znm-f1.z1_znm-f1.x_znm+f1.x1_znm)>0){dl_znm=-dl0_znm;}
else{dl_znm=dl0_znm;}
   if(fabs(f1.x_znm-f1.x1_znm)fabs(f1.z_znm-f1.z1_znm)){
f1.z2_znm=f1.z_znm+dl_znm;f1.x2_znm=f1.x_znm;
f1.y2_znm=(-f1.A_znm*f1.x2_znm-f1.C_znm*f1.z2_znm-f1.D_znm)/f1.B_znm;
}
break;//   }
///////////////////////////////////////////////////////////////////
case 5://if(f1.fl0_znm==1){
if((f1.z_znm-f1.z1_znm-f1.y_znm+f1.y1_znm)>=0){dl_znm=-dl0_znm;}
else{dl_znm=dl0_znm;}
   if(fabs(f1.y_znm-f1.y1_znm)fabs(f1.z_znm-f1.z1_znm)){
f1.z2_znm=f1.z_znm+dl_znm;f1.y2_znm=f1.y_znm;
f1.x2_znm=(-f1.B_znm*f1.y2_znm-f1.C_znm*f1.z2_znm-f1.D_znm)/f1.A_znm;
}
break;//   }
////////////////////////////////////////////////////////////////////
case 6://   if(f1.fl0_znm==3){
if((f1.y_znm-f1.y1_znm-f1.x_znm+f1.x1_znm)>=0){dl_znm=-dl0_znm;}
else{dl_znm=dl0_znm;}
   if(fabs(f1.x_znm-f1.x1_znm)fabs(f1.y_znm-f1.y1_znm)){
f1.y2_znm=f1.y_znm+dl_znm;f1.x2_znm=f1.x_znm;
f1.z2_znm=(-f1.A_znm*f1.x2_znm-f1.B_znm*f1.y2_znm-f1.D_znm)/f1.C_znm;
}
break;//   }
   }
/////////////////////////////////////////////////////////////////////
//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
   f1.r0_znm=sqrt(pow((f1.x2_znm-f1.x1_znm),2)+
      pow((f1.y2_znm-f1.y1_znm),2)+pow((f1.z2_znm-f1.z1_znm),2));
f1.x_znm=f1.x1_znm+f1.r_znm*(f1.x2_znm-f1.x1_znm)/f1.r0_znm;
f1.y_znm=f1.y1_znm+f1.r_znm*(f1.y2_znm-f1.y1_znm)/f1.r0_znm;
f1.z_znm=f1.z1_znm+f1.r_znm*(f1.z2_znm-f1.z1_znm)/f1.r0_znm;
ЗВЕЗДЫ ЗОВУТ!!!
Я знаю непреложную истину - если цыпленок не сумеет выбраться из яйца, он погибнет, если ребенок не сумеет выбраться из лона матери, он утащит на тот свет и ее.

zenixt

atmKntr1.h
Цитировать//Для переменных atmKntr1 объект f1.---
void CAtom0View::atmKntr1a(CDC* pDC)
{
   BITMAP bm;
   bm.bmType=0;
   bm.bmWidth=400;
   bm.bmHeight=400;
   bm.bmWidthBytes=155;
   bm.bmPlanes=1;
   bm.bmBitsPixel=16;
   bm.bmBits=NULL;
// Определяем размер объекта и резервируем память под буфер
Bitmap.GetObject(sizeof(BITMAP),&bm);
// Чертим оси координат
#include "atmKrdnt.h"
// Рисуем контур, точнее заполнем массив данных
// значениями его координат
//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
// Инициализируем исходные данные
   f1.x1_znm=f0.x1_znm;f1.y1_znm=f0.y1_znm;
   f1.z1_znm=f0.z1_znm;// координаты центра контура
f1.A_znm=f0.A_znm;f1.B_znm=f0.B_znm;
f1.C_znm=f0.C_znm;// проекции вектора нормали на оси координат
   f1.r_znm=f0.r_znm;// радиус контура
f1.D_znm=-f1.A_znm*f1.x1_znm-f1.B_znm*f1.y1_znm-f1.C_znm*f1.z1_znm;

dl_znm=f0.dl0_znm;dl0_znm=f0.dl0_znm;
f1.x_znm=f0.x_znm;f1.y_znm=f0.y_znm;f1.z_znm=f0.z_znm;
f1.x0_znm=f0.x_znm;f1.y0_znm=f0.y_znm;f1.z0_znm=f0.z_znm;
   f1.fl0_znm=0;i4_znm=1;
//Помещаем найденные координаты точки в массив
#include "atmL_GlCv.h"
//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
#include "atmKPztion.h"
do{
#include "atmKntr0.h"
//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
#include "atmL_GlCv.h"
#if 0//1 здесь и 0 в atmKntr0.h, чтобы глянуть, что происходит
//Перерисовываем окно
Bitmap.SetBitmapBits(bm.bmHeight*bm.bmWidthBytes,pData);
///Вывод битовой карты на экран функцией BitBlt()
   CDC MemDC1;
   CBitmap *pOldBitmap;
   MemDC1.CreateCompatibleDC(pDC);
pOldBitmap=
      (CBitmap*)MemDC1.SelectObject(&Bitmap);
pDC->BitBlt(20,0,400,400,&MemDC1,0,0,SRCCOPY);
MemDC1.SelectObject(pOldBitmap);
      RECT Rect;
      Rect.left=20;
      Rect.top=0;
      Rect.right=Rect.left+400;
      Rect.bottom=Rect.top+400;
      InvalidateRect(&Rect,FALSE);
#endif

i4_znm++;
#if 1
f1.r0_znm=sqrt(pow(f1.x_znm-f1.x0_znm,2)+pow(f1.y_znm-f1.y0_znm,2)+
           pow(f1.z_znm-f1.z0_znm,2));
   i4_znm++;
if(i4_znm<10){if(fabs(f1.r0_znm)<1)f1.fl0_znm=f1.fl0_znm;}
else{if(fabs(f1.r0_znm)<1){f1.fl0_znm=10;}}
#endif
}
while(f1.fl0_znm<10>4){
//Перерисовываем окно
Bitmap.SetBitmapBits(bm.bmHeight*bm.bmWidthBytes,pData);
///Вывод битовой карты на экран функцией BitBlt()
   CDC MemDC1;
   CBitmap *pOldBitmap;
   MemDC1.CreateCompatibleDC(pDC);
pOldBitmap=
      (CBitmap*)MemDC1.SelectObject(&Bitmap);
pDC->BitBlt(20,0,400,400,&MemDC1,0,0,SRCCOPY);
MemDC1.SelectObject(pOldBitmap);
//i6_znm=0;}
      RECT Rect;
      Rect.left=20;
      Rect.top=0;
      Rect.right=Rect.left+400;
      Rect.bottom=Rect.top+400;
      InvalidateRect(&Rect,FALSE);
#endif
}
atmKntr1b.h
Цитироватьvoid CAtom0View::atmKntr1b(CDC* pDC)
{
   BITMAP bm;
   bm.bmType=0;
   bm.bmWidth=400;
   bm.bmHeight=400;
   bm.bmWidthBytes=155;
   bm.bmPlanes=1;
   bm.bmBitsPixel=16;
   bm.bmBits=NULL;
// Определяем размер объекта и резервируем память под буфер
Bitmap.GetObject(sizeof(BITMAP),&bm);
// Чертим оси координат
#include "atmKrdnt.h"
// Рисуем контур, точнее заполнем массив данных
// значениями его координат
//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
//#include "atmKntr0.h"
// Инициализируем исходные данные
   f1.x1_znm=f0.x1_znm;f1.y1_znm=f0.y1_znm;
   f1.z1_znm=f0.z1_znm;// координаты центра контура
f1.A_znm=f0.A_znm;f1.B_znm=f0.B_znm;
f1.C_znm=f0.C_znm;// проекции вектора нормали на оси координат
   f1.r_znm=f0.r_znm;// радиус контура
f1.D_znm=-f1.A_znm*f1.x1_znm-f1.B_znm*f1.y1_znm-f1.C_znm*f1.z1_znm;
dl0_znm=dl_znm=f0.dl1_znm;
f1.x_znm=f0.x_znN;
f1.y_znm=f0.y_znN;f1.z_znm=f0.z_znN;
f1.fl0_znm=0;
//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
//Рисуем контур
#include "atmKPztion.h"
//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
#include "atmKntr0.h"
#include "atmL_GlCv.h"
      f0.x_znN=f1.x_znm;
      f0.y_znN=f1.y_znm;f0.z_znN=f1.z_znm;
//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
#if 0//0 здесь и 1 в atmKntr0.h, чтобы глянуть, что происходит
Bitmap.SetBitmapBits(bm.bmHeight*bm.bmWidthBytes,pData);
///Вывод битовой карты на экран функцией BitBlt()
   CDC MemDC1;
   CBitmap *pOldBitmap;
   MemDC1.CreateCompatibleDC(pDC);
pOldBitmap=
      (CBitmap*)MemDC1.SelectObject(&Bitmap);
pDC->BitBlt(20,0,400,400,&MemDC1,0,0,SRCCOPY);
MemDC1.SelectObject(pOldBitmap);
//Перерисовываем окно
      RECT Rect;
      Rect.left=20;
      Rect.top=0;
      Rect.right=Rect.left+400;
      Rect.bottom=Rect.top+400;
      InvalidateRect(&Rect,FALSE);
#endif
f0.A_znm=f1.x_znm-f1.x1_znm;
f0.B_znm=f1.y_znm-f1.y1_znm;
f0.C_znm=f1.z_znm-f1.z1_znm;
}
atmKrdnt.h
Цитировать//Заполняем массив pData кодом черного цвета
for(j_znm=0;j_znmfor(i_znm=0;i_znm   pData[i_znm*2+j_znm*bm.bmWidthBytes]=0;
   pData[i_znm*2+1+j_znm*bm.bmWidthBytes]=0;
}}
//Чертим ось Х белым
i_znm=1;
for(j_znm=0;j_znm   pData[i_znm*2+j_znm*bm.bmWidthBytes]=255;
   pData[i_znm*2+1+j_znm*bm.bmWidthBytes]=255;}
//Чертим ось Z белым
j_znm=398;
for(i_znm=0;i_znm   pData[i_znm*2+j_znm*bm.bmWidthBytes]=255;
   pData[i_znm*2+1+j_znm*bm.bmWidthBytes]=255;}
//Чертим ось Y. Для того, Чтобы определить на чертеже удаленность
//точки, цвет в зависимости от глубины меняется от салатового
//к пурпурному
j_znm=398;k3_znm=0;k2_znm=0;k1_znm=0;
for(i_znm=0;i_znm<200>=281){k2_znm=0;}
   j_znm=j_znm-1;}
atmL_GlCv.h
Цитировать//задаем глубину цветом
f1.a_znm=f1.y_znm/2;f1.b_znm=f1.y_znm/4;f1.c_znm=f1.x_znm;
f1.r0_znm=f1.z_znm;
// Вычисляем экранные координаты
 i_znm=(int)f1.c_znm+(int)f1.a_znm+5;
 j_znm=(int)f1.b_znm+(int)f1.r0_znm+3;
//вычисляем глубину цвета
   k1_znm=(int)f1.a_znm/9;k3_znm=k1_znm;
   k1_znm=(int)f1.a_znm/18;k2_znm=199-k1_znm;
   if(j_znm>=399){k2_znm=0;}
//Показывает точки оси вращения контура. Будет удалено
#if 1
   if(fabs(f1.x_znm-f0.x_znm)<1.5){
      if(fabs(f1.y_znm-f0.y_znm)<1.5)
   {k2_znm=255;k3_znm=255;}}
if(fabs(f1.x_znm-(2*f1.x1_znm-f0.x_znm))<1.5)
{if(fabs(f1.y_znm-(2*f1.y1_znm-f0.y_znm))<1.5)
{k2_znm=255;k3_znm=255;}}
#endif

//Заносим данные о цвете в массив pData
pData[i_znm*2+(400-j_znm)*bm.bmWidthBytes]=k3_znm;
pData[i_znm*2+1+(400-j_znm)*bm.bmWidthBytes]=k2_znm;
ЗВЕЗДЫ ЗОВУТ!!!
Я знаю непреложную истину - если цыпленок не сумеет выбраться из яйца, он погибнет, если ребенок не сумеет выбраться из лона матери, он утащит на тот свет и ее.

zenixt

atom0View.h
Цитировать// atom0View.h : interface of the CAtom0View class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_ATOM0VIEW_H__00329C2C_1C90_11E0_81F1_C4069E22DA94__INCLUDED_)
#define AFX_ATOM0VIEW_H__00329C2C_1C90_11E0_81F1_C4069E22DA94__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


class CAtom0View : public CView
{
protected: // create from serialization only
   CAtom0View();
   DECLARE_DYNCREATE(CAtom0View)

// Attributes

public:
   CBitmap Bitmap;
      void atmKntr1a(CDC *);
      void atmKntr1b(CDC *);
   CAtom0Doc* GetDocument();
private:
   #include "atmData2.h"
   #include "atmData0.h"
   #include "atmData1.h"

// Operations
public:

// Overrides
   // ClassWizard generated virtual function overrides
   //{{AFX_VIRTUAL(CAtom0View)
   public:
   virtual void OnDraw(CDC* pDC);  // overridden to draw this view
   virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
   protected:
   //}}AFX_VIRTUAL

// Implementation
public:
   virtual ~CAtom0View();
#ifdef _DEBUG
   virtual void AssertValid() const;
   virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
   //{{AFX_MSG(CAtom0View)
      // NOTE - the ClassWizard will add and remove member functions here.
      //    DO NOT EDIT what you see in these blocks of generated code !
   //}}AFX_MSG
   DECLARE_MESSAGE_MAP()
};

#ifndef _DEBUG  // debug version in atom0View.cpp
inline CAtom0Doc* CAtom0View::GetDocument()
   { return (CAtom0Doc*)m_pDocument; }
#endif

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_ATOM0VIEW_H__00329C2C_1C90_11E0_81F1_C4069E22DA94__INCLUDED_)
ЗВЕЗДЫ ЗОВУТ!!!
Я знаю непреложную истину - если цыпленок не сумеет выбраться из яйца, он погибнет, если ребенок не сумеет выбраться из лона матери, он утащит на тот свет и ее.

zenixt

Как мудро заметили авторы учебника, алгоритм желательно составлять так, чтобы вообще не возникало исключений, что мне давным-давно известно.
 А посему, ПРИМЕР 3. накрылся медным тазом. Новое решение получилось довольно элегантным. Как я смутно понимаю, я использовал-таки непосредственные операции с векторами. :roll:
 И все ж, память мне подсказывает, что то забытое решение было другим. Об остальном она в основном вежливо умалчивает.
 Таперача протестирую алгоритм для всех возможных случаев, затем переделаю его(от примера 3 осталась куча ненужных переменных, а чтобы их удалить, придется поспорить с моим компилятором, затем для обработки рисования контура и его поворота лучше ввести разные функции, затем в очередной раз улучшить стиль кодов и т.п.).
 Только тогда перейду к ПРИМЕРУ 5., где планирую для начала, как частный случай, решить задачу трех тел.
ЗВЕЗДЫ ЗОВУТ!!!
Я знаю непреложную истину - если цыпленок не сумеет выбраться из яйца, он погибнет, если ребенок не сумеет выбраться из лона матери, он утащит на тот свет и ее.

zenixt

Ну вот, не прошло и полгода, как я заставил контур вращаться во всех возможных положениях.
 Что-то редактор сообщений здесь жутко глючит, уродует текст программы. Поэтому все последующие редакции проекта будут на
http://terredesreves.3bb.ru/
о чем я буду сообщать здесь.
ЗВЕЗДЫ ЗОВУТ!!!
Я знаю непреложную истину - если цыпленок не сумеет выбраться из яйца, он погибнет, если ребенок не сумеет выбраться из лона матери, он утащит на тот свет и ее.

zenixt

Представляю вариант "мотылек". Файл перезагружен 8 февраля 2011г.
atom0
Внимание, файл желательно запускать в 16-битовом видеорежиме. В других видеорежимах он пока работает некорректно. Не вижу особой необходимости заморачиваться на "украшательства" до тех пор, пока проект не будет готов в основном.
 Коды предоставлю чуть попозже.
ЗВЕЗДЫ ЗОВУТ!!!
Я знаю непреложную истину - если цыпленок не сумеет выбраться из яйца, он погибнет, если ребенок не сумеет выбраться из лона матери, он утащит на тот свет и ее.

Виктop B.

А чё происходит в этой теме?[/size]   Дохрена каких-то листингов странного вида без разметки-лесенки.  А есть картинки, скриншоты или  таблички с цифирками - результаты того что эти программы насчитали?  Собственно их и надо выкладывать, а не неопрятные исходники.  Тут кто-то кроме топикстартера и коткота еще присутствует живой? А что значит название темы?

Виктop B.

Ничего не понял?  Аффтар пытается моделировать химическую связь просто по закону кулона, при этом отрицая что ускоренно двигающийся заряд излучает  э.м.-волну?
Я то думал что тут пытаются неуспешно и с большим аппломбом что-то по Хартри-Фоку считать вначале, а потом понял что ужос какой-то.
 Типа интересно. Пара вопросов тогда, если я все верно понял.

1)Признает ли аффтар, что двигающийся заряд создает магнитне поле (и если нет то как он обеснит, что катушки с током притягиваются)
2)Если да, по первому пункту, то признает ли аффтар, что двигающийся ускоренно заряд создает переменное магнитне поле (ну типа двигающийся создает,  меняется скорость - меняется поле)
3)Если да, то признает ли он что меняющееся поле  создает волну.  И если нет, то как он будет моделировать эээм радиоволны? Их не существует что ли?

Ну и вообще какие законы он рассматривает?
Я когда чёкать пришел переоценил масштаб происходящего, но надеюсь что аффтар или кто-то внимательно следивший за темой таки ответит на мои вопросы.

zenixt


 Тута кто-то интересовался задачей трех тел? Вот одно из решений. По моим сегодняшним представлениям существует по крайней мере пять вариантов решения этой задачи и каждый вариант имеет бесконечное множество решений. Замечу, что ни один вариант не дает самостабилизирующихся орбит и при малейшем постороннем влиянии система из трех тел выходит из равновесия, если не считать варианта, когда третье тело сильно удалено от двух других.
 Какое практическое значение? Во-первых, занятие этой задачей позволило устранить микроскопический, но очень вредный бзик в моей программе. Во-вторых, для большей наглядности орбиты надо делать непрозрачными, чем я сейчас и займусь. Кажись, плевое дело - о,великий Си, спасибо тебе.
 А затем еще недельку порешаю один интересный вариант трех тел. Но не больше. Ужо и так уйму времени угробил.
ЗВЕЗДЫ ЗОВУТ!!!
Я знаю непреложную истину - если цыпленок не сумеет выбраться из яйца, он погибнет, если ребенок не сумеет выбраться из лона матери, он утащит на тот свет и ее.

zenixt

Цитировать1)Признает ли аффтар, что двигающийся заряд создает магнитне поле (и если нет то как он обеснит, что катушки с током притягиваются)
Аффтар так же признает, что одной катушке с током не к чему притягивается. Нужна вторая.
Цитировать2)Если да, по первому пункту, то признает ли аффтар, что двигающийся ускоренно заряд создает переменное магнитне поле (ну типа двигающийся создает,  меняется скорость - меняется поле)
Я че, зря сделал подпись "Тело  не может ни двигаться ни вращаться  относительно самого спебя" ?????????
Цитировать3)Если да, то признает ли он что меняющееся поле  создает волну.  И если нет, то как он будет моделировать эээм радиоволны? Их не существует что ли?
Меняющееся относительно чего??? Относительно гравитационного поля что ли???
 Теперь коды получит только тот, кто захочет взять на себя часть работы.
ЗВЕЗДЫ ЗОВУТ!!!
Я знаю непреложную истину - если цыпленок не сумеет выбраться из яйца, он погибнет, если ребенок не сумеет выбраться из лона матери, он утащит на тот свет и ее.

zenixt


Вот так стал выглядеть "бублик" - предыдущий рисунок сделанный моей программой - после того, как я сделал орбиты непрозрачными.

 А из этого рисунка, сделанного программой, видно что увеличение расстояния до третьего тела всего в 2.5 раза сделало систему трех тел почти стабильной.
 Но хватит с задачей трех тел. Она со своей задачей справилась - выявила "все возможные?" недостатки моей программы.
 Теперь в тему можно не заглядывать до осени, так как у меня не будет достаточно времени, чтобы  достаточно сосредоточиться на составлении проекта.
 Зато чаще буду появляться в инете, хотя свободное время лучше посвятить углублению в Си и повторению нужных разделов математики и физики - повторенье - мать ученья.
ЗВЕЗДЫ ЗОВУТ!!!
Я знаю непреложную истину - если цыпленок не сумеет выбраться из яйца, он погибнет, если ребенок не сумеет выбраться из лона матери, он утащит на тот свет и ее.

zenixt

С точки зрения электрона, движущегося с ускорением при отсутствии других зарядов он неподвижен. Ну, действует на него какая-то сила, так она же не электрическая. Мы то знаем, что она F=m*a. А ему откуда известно гравитационная она аль центробежная. Ну шо ж вы это никак не поймете. А вот как появится в его "поле зрения" какой-нить заряд, вот тута и начинаются электромагнитные игры с разными там излучениями, индукциями и самоиндукциями.
 Если строго придерживаться точки зрения Дмитрия Р., дык всякий заряд должон излучать в гравитационном поле.
 Дмитрий Р. убедительно доказал мне, что ЕСЛИ ФАКТЫ НЕ СООТВЕТСТВУЮТ ТЕОРИИ - ТЕМ ХУЖЕ ДЛЯ ФАКТОВ.  :D
ЗВЕЗДЫ ЗОВУТ!!!
Я знаю непреложную истину - если цыпленок не сумеет выбраться из яйца, он погибнет, если ребенок не сумеет выбраться из лона матери, он утащит на тот свет и ее.

zenixt

Vlad(7308)у на заметку
Цитировать"Существует определенное противоречие между разработкой качественного программного обеспечения  и разработкой программного обеспечения, работающего наиболее эффективно. Часто одна из этих целей достигается за счет другой."
(Х.М.Дейтел, П.Дж.Дейтел, "Как программировать на С")
 Уверен, Vlad7308 в курсе. Я это к чему. У меня маленький(не смертельный) кризис со скоростью, э-э-э, эффективностью . Я сражен  математической библиотекой Си наповал, но остаются определенные подозрения пока не поработаю в DOS, но сейчас не до того и ни к чему.
 Какие у меня резервы? Когда причешу программу, выигрыш будет в 1.2-1.5 раз. Мат. библиотека хорошая, а вот логика жрет много времени. Когда заменю все, что можно ассемблерными кодами, почти уверен в выигрыше в 2, а то и 5 раз. Еще можно без проблем разогнать процессор в два раза, просто я его очень люблю. Уже в сумме минимум 6-кратный выигрыш. Можно еще поотключать все, какие можно сопутствующие программы, но тут мне пока никаких рекомендаций нет.
 И, наконец, Ассемблер. В итоге, минимум десятикратное ускорение, но никак не 100, как я предполагал в начале. Ну ничего, год - не десять лет(это если мне захочется замахнуться на че-нить покруче молекулы воды).
 Вота че я так долго выяснял.
 Скоро кину новую картинку.
ЗВЕЗДЫ ЗОВУТ!!!
Я знаю непреложную истину - если цыпленок не сумеет выбраться из яйца, он погибнет, если ребенок не сумеет выбраться из лона матери, он утащит на тот свет и ее.

zenixt


 Вот так выглядел бы атом гелия, если бы кулоновская сила была, а магнитные силы отсутствовали.  :lol:
 Но уже есть совпадение с практикой. При радиусе меньше 100 пм атом в основном теряет стабильность. В прежнем заходе я сразу начинал с молекулы водорода. Занятие с задачей трех тел подсказало начать с атома гелия. Изображение наклонено на 45 градусов относительно горизонта. Это тоже надо сделать наглядным. :roll:
 Теперь, когда я введу магнитные силы, вы увидите, как появятся энергетические уровни. Но боюсь, это будет нескоро. Не от меня зависит.
 Ба, а что это за полоски :?: Помните про непрозрачные орбиты. Программа настоятельно требует системы управления. Обойдется пока.  :x И без того времени нету.
ЗВЕЗДЫ ЗОВУТ!!!
Я знаю непреложную истину - если цыпленок не сумеет выбраться из яйца, он погибнет, если ребенок не сумеет выбраться из лона матери, он утащит на тот свет и ее.