Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

работа с Mathsoft 3-D Plot (TOpenGL)

3.3K
21 марта 2011 года
eugrita
24 / / 26.02.2006
Пытался опробовать работу с компонентом 2-и 3d графики -Mathsoft 3-D Plot (TOpenGL)
как в Delphi, так и в C++ Builder прежде всего в режиме построения 3d
В Delphi при установке и работе с ним в приложении
встетился с следующей проблемой
1)после инсталляции и работе с ним он при использовании на форме
приложения имеет черный фон и соответственно отсутствие возможности увидеть график поверхности
cм. код ниже
Код:
procedure TForm1.bOKClick(Sender: TObject);
var i,j: integer;
begin
 if (inp()<0) then exit;
 vr := VarArrayCreate([0,n,0,n],varDouble );
 dx:=(xb-xm)/N;  dy:=(yb-ym)/N;
 for i:=0 to N do
 for j:=0 to N do
   begin
  x:=xm+i*dx; y:=ym+j*dy;  z:=x*x+y*y;
  vr[i,j] := z;
   end;
OpenGL1.RemoveSurfaces;
OpenGL1.AddSurface(vr);
end;

в С++ Builder к VarArrayCreate обращение немного другое
и не проходит оператор присваивания типа vr[i,j] := z;
поэтому использовал массивы int bnd1[2] = {0,N}; для 2d
и int bnd2[4] = {0,N-1,0,N-1}; для 3d
Для заполнения вариантного массива использовал PutElement
код
 
Код:
int bnd1[2] = {0,N};
gArr = VarArrayCreate(bnd1,1,varDouble);
for (int i=0; i<=N;i++)
{y=2*sin(xn+i*dx); gArr.PutElement(y,i); }
 благополучно работает и строит 2 3d плоский график синусоиды

а код
 
Код:
int bnd2[4] = {0,N-1,0,N-1};
gArr = VarArrayCreate(bnd2,3,varVariant);
for (int i=0; i<=N;i++)
for (int j=0; j<=N;j++)
{
  x=xn+i*dx; y=yn+y*dy;z=cos(sqrt(x*x+y*y));
  gArr.PutElement(z,y,x);
}

приводит к выходу за границы памяти при 1-же обращении
Возможно неправилен выдов PutElement с 3 параметрами.
Заменил на gArr.PutElement(z,i*N+j); -ошибка не изменилась
1
22 марта 2011 года
kot_
7.3K / / 20.01.2000
Что показывает отладчик?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог