qt

Описание: Разработка и отладка приложений. Упор на 3D-графику.

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 6 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#31 dyvniy » Вс, 11 января 2015, 13:24:32

Аналог солюшена в QtCreator
http://forum.vingrad.ru/topic-355068.html

Код: Выделить всё

Создаётся subdir проект,
Код

TEMPLATE=subdirs
SUBDIRS+= mylibrary myserver myclient

В подкаталогах mylibrary myserver myclient размещаются вложенные проекты.
Ресурсы в разных проектах ложить под разными префиксами - в дизайнере Qt Creator будет предлагать ресурсы из всех проектов, с одинаковым префиксом их будет не различить, а из клиента можно пользоваться ресурсами только клиента и библиотеки, но не сервера. 
Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 6 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#32 dyvniy » Пн, 12 января 2015, 12:20:12

Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 6 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#33 dyvniy » Ср, 14 января 2015, 18:00:50

Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 6 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#34 dyvniy » Пт, 30 января 2015, 18:21:31

Load .stl binary file
http://forums.codeguru.com/showthread.php?148668-loading-a-stl-3d-model-file

Код: Выделить всё


for now i manage to load only binary stl
i enclose my code here
..( in C & opengl)
could you send you ascii stl code to me.....
however thank for your help

#include <windows.h>
#include <gl/gl.h>
#include <gl/glu.h>
#include <gl/glut.h>
#include <math.h>

GLfloat    lightPos[] = {-300.0f, 100.0f, 100.0f, 0.0f };

// Define a constant for the value of PI
#define GL_PI 3.1415f

// Rotation amounts
static GLfloat xRot = 0.0f;
static GLfloat yRot = 0.0f;

float vertex[3][3];
# include &lt; stdio.h&gt;
# include &lt; stdlib.h&gt;
# include &lt; string.h&gt;

struct group
{
float normal[3];

float vertex1[3];
float vertex2[3];
float vertex3[3];

char unuse [2];
}
 ;

/*struct group{

float normal[3];

float vertexs[3][3];

char unuse [2];

} ;
*/




struct group facet[500000] ;

int i,j,num;

char filename[80];
int numfacet[1];



// Reduces a normal vector specified as a set of three coordinates,
// to a unit normal vector of length one.
void ReduceToUnit(float vector[3])
{
float length;

// Calculate the length of the vector    
length = (float)sqrt((vector[0]*vector[0]) + 
(vector[1]*vector[1]) +
(
vector[2]*vector[2]));

// Keep the program from blowing up by providing an exceptable
// value for vectors that may calculated too close to zero.
if(length == 0.0f)
length = 1.0f;

// Dividing each element by the length will result in a
// unit normal vector.
vector[0] /= length;
vector[1] /= length;
vector[2] /= length;
}


// Points p1, p2, & p3 specified in counter clock-wise order
void calcNormal(struct group *facet, float out[3])
{
float v1[3],v2[3];
static const int x = 0;
static const int y = 1;
static const int z = 2;

// Calculate two vectors from the three points
v1[x] = (*facet).vertex1[x] -(*facet).vertex2[x];
v1[y] = (*facet).vertex1[y] - (*facet).vertex2[y];
v1[z] = (*facet).vertex1[z] - (*facet).vertex2[z];

v2[x] = (*facet).vertex2[x] - (*facet).vertex3[x];
v2[y] = (*facet).vertex2[y] - (*facet).vertex3[y];
v2[z] = (*facet).vertex2[z] - (*facet).vertex3[z];

// Take the cross product of the two vectors to get
// the normal vector which will be stored in out
out[x] = v1[y]*v2[z] - v1[z]*v2[y];
out[y] = v1[z]*v2[x] - v1[x]*v2[z];
out[z] = v1[x]*v2[y] - v1[y]*v2[x];

// Normalize the vector (shorten length to one)
ReduceToUnit(out);
}


// Called to draw scene
void RenderScene(void)
{

float normal[3];


glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);


glMatrixMode(GL_MODELVIEW);
glLoadIdentity();


//glTranslatef(0.0f,0.0f,-500.0f);



glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

glTranslatef(-2.5,0.0,0.0);

glPushMatrix();

glRotatef(xRot,1,0,0);
glRotatef(yRot,0,1,0);




glColor3ub(128, 128, 128);





glBegin(GL_TRIANGLES);

{


for(
j=0;j&lt;num;j++)



{


facet[j].vertex1;
facet[j].vertex2;
facet[j].vertex3;



//float v[3][3]={ facet[j].vertexs[3][3]};


calcNormal(&facet[j],normal);
glNormal3fv(normal);
glVertex3fv(facet[j].vertex1);
glVertex3fv(facet[j].vertex2);
glVertex3fv(facet[j].vertex3);
}

}
glEnd();



/*{
//for(n=0;n&lt;8;n++)



{
float v[3][3]={{0.000000,0.000000,-200.000000},
{400.000000,0.000000,0.000000},
{0.000000,0.000000,0.000000}};

calcNormal(v,normal);
glNormal3fv(normal);
glVertex3fv(v[0]);
glVertex3fv(v[1]);
glVertex3fv(v[2]);
}
//}glEnd();




{
float v[3][3]={{0.000000,0.000000,-200.000000},
{400.000000,0.000000,0.000000},
{0.000000,0.000000,0.000000}};

calcNormal(v,normal);
glNormal3fv(normal);
glVertex3fv(v[0]);
glVertex3fv(v[1]);
glVertex3fv(v[2]);
}


{
float v[3][3]={{0.000000,50.000000,0.000000},
{0.000000,0.000000,0.000000},
{400.000000,0.000000,0.000000}};
calcNormal(v,normal);
glNormal3fv(normal);
glVertex3fv(v[0]);
glVertex3fv(v[1]);
glVertex3fv(v[2]);
}



{
float v[3][3]={{0.000000,50.000000,-200.000000},
{0.000000,0.000000,-200.000000},
{0.000000,0.000000,0.000000}};

calcNormal(v,normal);
glNormal3fv(normal);
glVertex3fv(v[0]);
glVertex3fv(v[1]);
glVertex3fv(v[2]);
}



{
float v[3][3]={{0.000000,50.000000,-200.000000},
{0.000000,0.000000,0.000000},
{0.000000,50.000000,0.000000}};

calcNormal(v,normal);
glNormal3fv(normal);
glVertex3fv(v[0]);
glVertex3fv(v[1]);
glVertex3fv(v[2]);
}

{
float v[3][3]={{400.000000,50.000000,0.000000},
{400.000000,0.000000,0.000000},
{0.000000,0.000000,-200.000000}};

calcNormal(v,normal);
glNormal3fv(normal);
glVertex3fv(v[0]);
glVertex3fv(v[1]);
glVertex3fv(v[2]);
}



{
float v[3][3]={{400.000000,50.000000,0.000000},
{0.000000,50.000000,0.000000},
{400.000000,0.000000,0.000000}};

calcNormal(v,normal);
glNormal3fv(normal);
glVertex3fv(v[0]);
glVertex3fv(v[1]);
glVertex3fv(v[2]);
}


{
float v[3][3]={{400.000000,50.000000,0.000000},
{0.000000,0.000000,-200.000000},
{0.000000,50.000000,-200.000000}};

calcNormal(v,normal);
glNormal3fv(normal);
glVertex3fv(v[0]);
glVertex3fv(v[1]);
glVertex3fv(v[2]);
}


{
float v[3][3]={{400.000000,50.000000,0.000000},
{0.000000,50.000000,-200.000000},
{0.000000,50.000000,0.000000}};

calcNormal(v,normal);
glNormal3fv(normal);
glVertex3fv(v[0]);
glVertex3fv(v[1]);
glVertex3fv(v[2]);
}

}

glEnd();*/








glPopMatrix();



glutSwapBuffers();
}

// This function does any needed initialization on the rendering
// context. 
void SetupRC()
{



GLfloat ambient[]={ 0.6f,0.6f,0.7f,1.0f};
GLfloat diffuse[]={0.7f,0.7f,0.7f,1.0f};
GLfloat spec[]={1.0f,1.0f,1.0f,1.0f};
GLfloat specma[]={1.0f,1.0f,1.0f,1.0f};


// Light values and coordinates
glShadeModel(GL_SMOOTH);
glEnable(GL_DEPTH_TEST);    // Hidden surface removal
glFrontFace(GL_CCW);    // Counter clock-wise polygons face out
glEnable(GL_CULL_FACE);    // Do not calculate inside of jet

// Enable lighting

glEnable(GL_LIGHTING);

// Setup and enable light 0
glLightModelfv(GL_LIGHT_MODEL_AMBIENT,ambient);
glLightfv(GL_LIGHT0,GL_AMBIENT,ambient);
glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuse);
glLightfv(GL_LIGHT0,GL_SPECULAR,spec);

// Enable color tracking

glEnable(GL_LIGHT0);
// Set Material properties to follow glColor values
glEnable(GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT,GL_AMBIENT_AND_DIFFUSE);
glMaterialfv(GL_FRONT,GL_SPECULAR,specma);
glMateriali(GL_FRONT,GL_SHININESS,128);


// Light blue background
glClearColor(0.0f, 0.0f, 0.0f, 1.0f );
}

void SpecialKeys(int key, int x, int y)
{
if(
key == GLUT_KEY_UP)
xRot-= 5.0f;

if(
key == GLUT_KEY_DOWN)
xRot += 5.0f;

if(
key == GLUT_KEY_LEFT)
yRot -= 5.0f;

if(
key == GLUT_KEY_RIGHT)
yRot += 5.0f;

//if(key &gt; 356.0f)
//    xRot = 0.0f;

//if(key &lt; -1.0f)
//    xRot = 355.0f;

//    if(key &gt; 356.0f)
//    yRot = 0.0f;

//    if(key &lt; -1.0f)
//    yRot = 355.0f;

// Refresh the Window
glutPostRedisplay();
}


void ChangeSize(int w, int h)
{
//
GLfloat nRange = 3.0f;

/*

GLfloat aspect;
aspect = (GLfloat)w/(GLfloat)h;

glViewport(0,0,w,h);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();


gluPerspective(1000.0f,aspect,1.0,1000.0);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
*/



// Prevent a divide by zero
if(== 0)
= 1; 

// Set Viewport to window dimensions
glViewport(0, 0, w, h);

// Reset coordinate system
glMatrixMode(GL_PROJECTION);
glLoadIdentity();

// Establish clipping volume (left, right, bottom, top, near, far)
if (&lt;= h) 
glOrtho 
(-nRange, nRange, -nRange*h/w, nRange*h/w, 2.0*(-nRange), 2.0*(nRange));
else 
glOrtho 
(-nRange*w/h, nRange*w/h, -nRange, nRange, 2.0*(-nRange), 2.0*(nRange));

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

glLightfv(GL_LIGHT0,GL_POSITION,lightPos);

}

int main(int argc, char* argv[])
{


/////////////////////////stl loader..............



FILE *binary;
FILE *out;



if(
 (binary =fopen("C:\\program files\\proe2000i\\bin\\carb_restruct.stl","rb"))==NULL )////stl file location

{
printf(" \n the is failed to accessed");
exit(
1);
}

out = fopen("C:\\my documents\\stlexperi3.txt","w");



fread(filename,sizeof(char),80,binary) ;
fread(numfacet,sizeof(int),1,binary);

for(
i=0;i&lt;80;i++)
fprintf(out,"%c",filename[i]);

for (i=0;i&lt;1;i++)
fprintf(out,"\n%d\n\n",numfacet[i]);
num=numfacet[0];



for (j=0;j&lt;num;j++)
{

fread(facet[j].normal,sizeof(float),3,binary);
fread(facet[j].vertex1,sizeof(float),3,binary);
fread(facet[j].vertex2,sizeof(float),3,binary);
fread(facet[j].vertex3,sizeof(float),3,binary);
fread(facet[j].unuse,sizeof(char),2,binary);
}

//////////////////////stl loader

glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(500,500);
glutCreateWindow("Lighted Jet");
glutReshapeFunc(ChangeSize);
glutSpecialFunc(SpecialKeys);
glutDisplayFunc(RenderScene);
SetupRC();
glutMainLoop();








return 0;
}
Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 6 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#35 dyvniy » Пн, 13 апреля 2015, 11:03:49

Если image.save(&buffer, "jpg") не работает, положить qjpeg4.dll в папку imageformats к экзешнику
https://justcheckingonall.wordpress.com/2013/01/25/jpeg-in-qt-app/
Спойлер
Can’t Save JPEG in a Deployed Qt Application

Posted by JustChecking on January 25, 2013
This has been haunting me for quite some time. When building Qt app for Windows, the QImage::save() function did not work for JPEG for deployed applications, while it did work if Qt SDK was installed on the machine.

As per docs, you just need to copy qjpeg4.dll into imageformats folder within the folder where the app’s .exe resides.

The problem was, that I just used the very first qjpeg4.dll file I could put my hands on, presuming they’re all the same.

Well, it appears there are several different versions of this file within the Qt SDK installation, and the one you really need is located in Desktop/Qt/4.x.y/mingw/plugins/imageformats. Take the qjpeg4.dll file located there, and copy it into imageformats folder inside the deployed folder, and all should be swell.

Note: If you’re deploying a debug build, copy the qjpeg4d.dll file instead.
Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 6 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#36 dyvniy » Чт, 23 апреля 2015, 15:34:31

Изображение


Название раздела: Программирование (под Desktop и Android)
Описание: Разработка и отладка приложений. Упор на 3D-графику.

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения
:) ;) :hihi: :P :hah: :haha: :angel: :( :st: :_( :cool: 8-| :beee: :ham: :rrr: :grr: :* :secret: :stupid: :music: Ещё смайлики…
   

Вернуться в «Программирование (под Desktop и Android)»

Кто сейчас на форуме (по активности за 15 минут)

Сейчас этот раздел просматривают: 12 гостей