Racjonalista - Strona głównaDo treści
program do rysowania linii i powierzchni 3D z punktów

Ten wątek jest przedawniony

Działy Forum » Nauka
NapisanoAutorTytuł
11-02-2023 16:38alsor (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 (14788 punktów)
>start:
www.racjonalista.pl/forum.php/s,898632#w898854


(Jedyną i) Absolutną Prawdą jest (Bezinteresowna) Miłość.
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.
11-02-2023 21:28 
 Ocena 1 na 1
Duch Prawdy (14788 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ść.
12-02-2023 09:56 
 Ocena 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.
13-02-2023 12:15 
 Ocena 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.
14-02-2023 11:41 
 Ocena 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!

Wróć do listy wątków działu Nauka
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

 


[ Regulamin publikacji ] [ Bannery ] [ Mapa portalu ] [ Reklama ] [ Sklep ] [ Zarejestruj się ] [ Kontakt ]
Racjonalista © Copyright 2000-2018 (e-mail: redakcja | administrator)
Fundacja Wolnej Myśli, konto bankowe 101140 2017 0000 4002 1048 6365