 |
program do rysowania linii i powierzchni 3D z punktów Ten wątek jest przedawniony Działy Forum » Nauka
| Napisano | Autor | Tytuł | | 11-02-2023 16:38 | alsor (3283 punktów) | program do rysowania linii i powierzchni 3D z punktów | Jaki program/aplikacja narysuje mi powierzchnię z podanych punktów? znaczy takie dane podajemy: start: x,y,z a potem milion kolejnych: xyz, czyli 999999 odcinków. i to ma mi zrobić i narysować z tego powierzchnię - full 3D, i obracaną do tego.  | Autor wątku ma uprawnienia do usuwania wypowiedzi, jeżeli łamią regulamin Forum lub znacznie odbiegają od tematu.
| Duch Prawdy (14787 punktów) | |
|
 | | alsor (3283 punktów) | > >start:> www.racjonalista.pl/forum.php/s,898632#w898854> (Jedyną i) Absolutną Prawdą jest (Bezinteresowna) Miłość.twoja ankieta jest do dupy, bo zapomniałeś podać alternatywę. i ja podam tę alternatywę: nie ma alternatywy... haha! głosowanie wprost przeciw czemuś nie ma po prostu sensu.
|
|
|  | 1 na 1 | Duch Prawdy (14787 punktów) | > >>start:> >www.racjonalista.pl/forum.php/s,898632#w898854> > (Jedyną i) Absolutną Prawdą jest (Bezinteresowna) Miłość.> twoja ankieta jest do dupy, bo zapomniałeś podać alternatywę.> i ja podam tę alternatywę:A ja lewatywę.
(Jedyną i) Absolutną Prawdą jest (Bezinteresowna) Miłość.
|
|
|  | 2 na 2 | farmer (22440 punktów) | ! >głosowanie wprost przeciw czemuś nie ma po prostu sensu.
Ma. Dlatego są wybory.
Jak odetnie tlen samoistnie dla tej witryny to gdzie przeczytam o tym co tu wstawiasz?
Niech zgadne.....nie wiem nie będę szukał.
A brak odbiorców dla swoich treści to największy ból dupy dla wstawiających posty.
|
|
| |  | | alsor (3283 punktów) | > !> >głosowanie wprost przeciw czemuś nie ma po prostu sensu.> Ma. Dlatego są wybory.Nie ma. > Jak odetnie tlen samoistnie dla tej witryny to gdzie przeczytam o tym co tu wstawiasz?> Niech zgadne.....nie wiem nie będę szukał.> A brak odbiorców dla swoich treści to największy ból dupy dla wstawiających posty.Obawiam się że setki innych 'witryn'... zresztą sam używam z... 44 chyba.
|
|
| uxbridge (5980 punktów) | A ChatGPT na to: Here's an example of a simple C++ program that reads a list of vertices from a file and uses OpenGL to render the surface built from those vertices: #include <iostream> #include <fstream> #include <vector> #include <cmath> #include <GL/glut.h>
using namespace std;
struct Vertex { float x, y, z; };
vector<Vertex> vertices;
void init() { glClearColor(0.0, 0.0, 0.0, 0.0); glShadeModel(GL_SMOOTH); glEnable(GL_DEPTH_TEST); }
void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glBegin(GL_TRIANGLES); for (int i = 0; i < vertices.size(); i++) { glVertex3f(vertices[i].x, vertices[i].y, vertices[i].z); } glEnd(); glFlush(); }
void reshape(int w, int h) { glViewport(0, 0, (GLsizei)w, (GLsizei)h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(60.0, (GLfloat)w/(GLfloat)h, 1.0, 20.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); }
void readVertices(const char* filename) { ifstream file(filename); if (!file.is_open()) { cout << "Error opening file." << endl; return; } while (!file.eof()) { Vertex v; file >> v.x >> v.y >> v.z; vertices.push_back(v); } file.close(); }
int main(int argc, char** argv) { if (argc != 2) { cout << "Usage: program filename" << endl; return 1; } readVertices(argv[1]); glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH); glutInitWindowSize(500, 500); glutInitWindowPosition(100, 100); glutCreateWindow("Surface"); init(); glutDisplayFunc(display); glutReshapeFunc(reshape); glutMainLoop(); return 0; }
In this example, the program reads a list of vertices from a file and stores them in a vector. The display function uses OpenGL to render the surface built from those vertices as a series of triangles. The reshape function sets up the projection and view matrices for a perspective view of the scene. The readVertices function reads the vertices
|
|
 | | alsor (3283 punktów) | >A ChatGPT na to: >Here's an example of a simple C++ program that reads a list of vertices from a file and uses OpenGL to render the surface built from those vertices: >#include <iostream> >#include <fstream> >#include <vector> >#include <cmath> >#include <GL/glut.h>using namespace std; >struct Vertex { > float x, y, z; >}; >vector<Vertex> vertices; >void init() { > glClearColor(0.0, 0.0, 0.0, 0.0); > glShadeModel(GL_SMOOTH); > glEnable(GL_DEPTH_TEST); >} >void display() { > glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); > glBegin(GL_TRIANGLES); > for (int i = 0; i < vertices.size(); i++) { > glVertex3f(vertices[i].x, vertices[i].y, vertices[i].z); > } > glEnd(); > glFlush(); >} >void reshape(int w, int h) { > glViewport(0, 0, (GLsizei)w, (GLsizei)h); > glMatrixMode(GL_PROJECTION); > glLoadIdentity(); > gluPerspective(60.0, (GLfloat)w/(GLfloat)h, 1.0, 20.0); > glMatrixMode(GL_MODELVIEW); > glLoadIdentity(); > gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); >} >void readVertices(const char* filename) { > ifstream file(filename); > if (!file.is_open()) { > cout << "Error opening file." << endl; > return; > } > while (!file.eof()) { > Vertex v; > file >> v.x >> v.y >> v.z; > vertices.push_back(v); > } > file.close(); >} >int main(int argc, char** argv) { > if (argc != 2) { > cout << "Usage: program filename" << endl; > return 1; > } > readVertices(argv[1]); > glutInit(&argc, argv); > glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH); > glutInitWindowSize(500, 500); > glutInitWindowPosition(100, 100); > glutCreateWindow("Surface"); > init(); > glutDisplayFunc(display); > glutReshapeFunc(reshape); > glutMainLoop(); > return 0; >} >In this example, the program reads a list of vertices from a file and stores them in a vector. The display function uses OpenGL to render the surface built from those vertices as a series of triangles. The reshape function sets up the projection and view matrices for a perspective view of the scene. The readVertices function reads the vertices
to nie jest powierzchnia z punktów, czy linii, lecz z serii zadanych trójkątów, co jest banalne.
|
|
|  | 1 na 1 | uxbridge (5980 punktów) | >to nie jest powierzchnia z punktów, czy linii, lecz z serii zadanych trójkątów, co jest banalne. Trójkąty w jednoznaczny sposób definiują jedną powierzchnię lub większą ich liczbę. Lista punktów lub odcinków tylko w szczególnych przypadkach. Dlatego nikt rozsądny tego nie robi.
|
|
| |  | | alsor (3283 punktów) | >>to nie jest powierzchnia z punktów, czy linii, lecz z serii zadanych trójkątów, co jest banalne. >Trójkąty w jednoznaczny sposób definiują jedną powierzchnię lub większą ich liczbę. Lista punktów lub odcinków tylko w szczególnych przypadkach. Dlatego nikt rozsądny tego nie robi.
Nie, bo to jest zadanie z frezarki:
a tam frez biega odcinkami - trójkąty są tu bezużyteczne.
Frez ma grubość np. 8mm, i półkulę na końcu, zatem gdy on robi powierzchnię, wtedy wycina te półkola faktycznie...
np. skok o x=1mm dla d = 8mm, czyli r=4mm rabi błąd typu:
1/2 (x/r)^2 = 1/2 1/16 = 1/32
co razy 4, bo taki jest promień daje: 1/8 = 0.125 mm czyli dość nieźle - zaledwie około 0.1mm błędu.
aby uzyskać lepszą dokładność np. 0.02 mm, no to wtedy skok byłby:
4 x^2/16 = 0.02 => x^2 = 0.08 => x = 0.28 mm,
4 razy ciaśniej - więcej tych odcinków, więc czasu.
..........
No i takie proste frezowanie polega na wycinaniu tą kulą o promieniu 4mm, powiedzmy, dowolnej powierzchni typu:
z = z(x,y);
np. półkula: z = sqrt(R^2-x^2+y^2)
i teraz musisz określić linię po której jedziesz - dookoła zazwyczaj, a nie trójkąty!
np. 50 okręgów o promieniu r = R - iR/50; i = 0..49 ale okrąg też ma być z odcinków, zatem np. co 1 stopień, co daje 360.
50 x 360 = ... tyle mamy punktów.
|
|
| | |  | 1 na 1 | uxbridge (5980 punktów) | >Jaki program/aplikacja narysuje mi powierzchnię z podanych punktów? ... >Nie, bo to jest zadanie z frezarki: Sam sobie rozwiązuj swoje zadania. Szczególnie takie, któych treść zmienia się w czasie.
|
|
| | | |  | | alsor (3283 punktów) | > >Jaki program/aplikacja narysuje mi powierzchnię z podanych punktów?> ...> >Nie, bo to jest zadanie z frezarki:> Sam sobie rozwiązuj swoje zadania. Szczególnie takie, któych treść zmienia się w czasie.Ale to nie moje zadanie - cały światowy przemysł na tym pracuje od wieku przynajmniej: frezarki, plotery, drukarki - słyszałeś o takich wynalazkach?  Obstawiam w ciemno że nawet... kura frezuje swoje jaja - dlatego są takie krzywe: czubate z jednej strony, a z drugiej... też, ale mniej, bo ona trochę głupia jest więc nie potrafi równo tego robić. hihi!
|
|
Aby pisać w tym wątku, musisz się zalogować
Zaloguj przez OpenID.. Jeżeli nie jesteś zarejestrowany/a - załóż konto..
Szukaj na Forum Przewodnik Regulamin i instrukcja obsługi Forum Kolegium Moderatorów 
|
 |
|