Vérifier qu'un point est dans un polygone

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 13:39

par Dlzlogic » 23 Juil 2012, 14:36

Dans le cas présent, la porte de garage a une position précise. Autrement dit, la façade est déterminée.
Le pignon peut-il être en limite ? si oui, la mise en place se fera en avançant ou en reculant la maison.
Un recul de 5 mètre est il imposé ? Dans quel sens doit-il être compté ?
etc.
Je vous conseille de bien vous poser les questions au départ avant d'essayer de les résoudre.
Dans le cas où la parcelle est déterminée, on adapte les dimensions de la maison à la parcelle, dans le cas où on implante des maison sorties d'un catalogue, on calcule le parcellaire en fonction des maisons.



Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 08:03

par ampholyte » 23 Juil 2012, 14:40

Justement pour le moment c'est ce que je fais, mais cela fait des maisons simples.
Si ma parcelle est un rectangle, je construis un nouveau rectangle à l'intérieur (donc plus petit).
Si ma parcelle est un trapèze, j'aurais une maison en trapèze (plus petit également)
Et ainsi de suite.
Si ma parcelle est concave et qu'elle a 28 côtés, mon bâtiment aura 28 côtés et sera plus petit.

La division en parcelle respectant un algorithme qui découpera de façon plus ou moins aléatoire mon bloc. Ainsi j'aurais des bâtiments différents à chaque fois.

Mais comme l'a si bien dit Dlzlogic, il y a des règles d'urbanisme à respecter.

Pour cela je pensais stocker des bases de bâtiment dans un tableau pour me permettre d'avoir par exemple 10 maisons différentes, 15 immeubles différents qu'il ne resterait plus qu'à venir mettre sur mes parcelles. D'où mon problème de savoir si oui ou non la base du bâtiment est dans ma parcelle.

Edit : réponse à Dlzlogic
En toute logique la ville n'est pas présente pour être un simulateur réaliste mais plutôt pour un décor en arrière plan (en 3D toujours) donc il n'y aura aucun détail sur la modélisation de ces bâtiments (à la limite des textures mais ce n'est plus dans le sujet).
Je m'étais fixé une limite (à cause du toit des maisons), les bâtiments ne dépasseront pas les 85% de la surface de la parcelle et ne pourront pas descendre en dessous de 65~70% de la surface.

C.Ret
Membre Relatif
Messages: 497
Enregistré le: 02 Juil 2012, 13:33

par C.Ret » 23 Juil 2012, 14:53

ampholyte a écrit:
Maintenant je souhaite faire évoluer mon code afin que le rendu de la ville soit plus réaliste et plus sympa. Pour cela, je souhaite construire un tableau multidimensionnel qui contiendra une liste de point correspondant à un socle que j'aurais définit préalablement. (donc plusieurs socles dans le tableau)



Je voudrais pas être méchant ou mesquin, mais je pense que le problème principal est justemetn là.

Ce n'est pas le code qui va rendre le modèle gégnré plus réaliste ou plus sympa...

En commençant à coder et à implémenter son programme avant d'avoir terminer l'analyse du problème est savoir avec précision quelles sont les données, les paramètres et les solutions que l'on souhaite mettre en oeuvre, nbi savoir exactemetn quel seront les résultats (et le format de ce résultat), on prend vite le risque de ne jamais trouver une issue efficace ou pertinante à son projet.


A chaque problèmatique rencontré, il peut y avoir plusieurs solutions, astuces ou outil mathématique qui peuvent être utilisés. Leur mise en ouvre dépend très fortement des contraintes, des format de donnée et de la 'qualité' du résultat.

Ainsi, des méthodes générales et paramètriques seront plus adaptées si l'on doit trouver par tatonnement les bons paramètres pour rendre le modèle réaliste ou de bonne qualité. Mais bien évidemment, le code sera diffèrent, peut-être plus complexe mais surtout moins efficace.

La remarque de Dlzlogic est pertinente, pour paraitre réaliste, une ville doit avoir un centre avec des batiments accolés voir des bulding ou des gratte-ciel, puis les quatier se décompose selon une logique urbanistique avec d'avoir des jardinets à l'intérieur des paté de maisons, des quartier nouveaul avec des barres et de tours, des quartiers résidentiel où effectivement l'alignemetn des batiment, même de forme diffèrente suit des régles précises.

Et de toute façon, l'orientation d'un batiment n'est jamais aléatoire, elle correspond à de spréfèrence et des contraintes liées à la course du soleil. Selon les latitude, les batiment cherchent donc à "prendre" la lumière et la chaleur solaire, à d'autre endroit on cherche au contraire à s'en cacher. Et sur les littoraux océaniques, ce n'est pas la course du soleil qui dicte l'orientation des batiments, mais la roses des vents (il en est de même dans certains couloirs rohdaniens ou au seuil du poitou...)


Si je devais me permettre quelques conseil ou mettre mon grain de sels; à cette étape du projet, je ferais une liste plus aboutie des contraintes, des diffèrentes zones urbaines et de leur positionnemtn relatif, par chaque zone urbains du nombre de bâtiments diffèrents envisageables et surtout la liste des contraintes ou paramètre ; type orientation, type d'alignement, limitation en hauteur, végétation, jardin, parc, arbres ...

Une fois la liste pour chaque zone établie, il sera plus facile d'envisager la (ou les ) stratégies à mettre en oeuvre.
Par exemple, s'il n'y a qu'une trentaine de type de maison diffèrente, il peut être utilse de dégager une ou deux contrainte et de la caratèriser par quelque paramètre généraux.

Par exemple, comme il va falloir sélectionner parmi un ensemble plus ou moins étendu de type de batiment possibles celui qui rentrera dans une parcelle donnée tout en laissant un espace (plus ou moins grand selon le cas) entre la rue, le bord de la parcelle, etc... Il peut être utilise de définir pour chaque batiment le rayon du cercle dans lequel le batimen s'incrit. En comparant avec la taille du cercle inscrit dans une parcelle donnée, il sera facile de voir si tel ou tel habitation peut ou non être un bon candidat.

Et ainsi de suite pour chaque contrainte du modèle.
Ce n'est pas le code qui va influencer la qualité ou le réalisme du résultat, mais la bonne modèlisation du sujet.

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 08:03

par ampholyte » 23 Juil 2012, 15:05

C.Ret,
Ta remarque est très pertinente et je suis complètement d'accord avec toi mais comme je l'ai dit plus haut,

je ne cherche pas à créer un simulateur de ville mais plutôt une ville qui sera un décor d'arrière plan.

En outre l'utilisateur pourra à sa guise modifier la ville générée aléatoirement (pour son film ou son jeu-vidéo).

Le projet est tout simplement de pouvoir générer une ville aléatoirement (respectant tout de même quelques règles d'urbanisme simples pour éviter que la ville ne soit un brouillon).

La première étape était justement de pouvoir monter les bâtiments à partir de la parcelle générée puis l'utilisateur retoucherait les bâtiments comme il le souhaiterait.

Personnellement j'aimerais pousser le projet un peu plus loin en proposant déjà de base à l'utilisateur des bâtiments un peu plus complexe et un peu plus réaliste qu'une maison à 4 côtés ou 5 côtés.

Enfin, je suis totalement d'accord que le code ne rendra pas plus réaliste ou pas les bâtiments et je le répète je ne cherche absolument pas à générer des villes hypra réalistes et utilisable comme simulateur urbain. Je parlais uniquement des formes des bâtiments et non des détails.

Si détails il y a l'utilisateur sera libre de les rajouter.

En comparant avec la taille du cercle inscrit dans une parcelle donnée, il sera facile de voir si tel ou tel habitation peut ou non être un bon candidat.


La comparaison entre le diamètre du cercle inscrit de la parcelle et le diamètre du cercle inscrit de la base du bâtiment peut-être en effet un excellent moyen de savoir si oui ou non un bâtiment pourrait rentrer dans la parcelle. :we:

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 13:39

par Dlzlogic » 23 Juil 2012, 17:28

ampholyte a écrit:La comparaison entre le diamètre du cercle inscrit de la parcelle et le diamètre du cercle inscrit de la base du bâtiment peut-être en effet un excellent moyen de savoir si oui ou non un bâtiment pourrait rentrer dans la parcelle. :we:

Je pense que vous vous focalisez trop sur "le bâtiment rentre dans la parcelle"
S'il ne rentre pas, vous pouvez soit réduire le bâtiment, soit agrandir la parcelle, ça, de toute façon, c'est un détail.
Pour construire une ville, il faut des axes principaux, plantés ou pas, des axes secondaires, des ruelles etc.
J'ai déjà fait un truc comme ça. J'avais le plan d'une ville, des indications sur les hauteurs de bâtiments. Autrement dit j'avais toutes les informations. Ben c'est pas de la tarte :zen:
Comme l'a dit C.Ret faites une analyse très soigneuse et très détaillée avant d'écrire la moindre ligne de code et même d'imaginer le moindre algorithme.

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 08:03

par ampholyte » 23 Juil 2012, 17:36

Très bien merci beaucoup pour tous vos conseils et vos idées :happy2:

Je vais digérer tout ça dans mon coin et je reviendrais avec de nouvelles questions si le besoin s'en fait sentir en expliquant plus précisément le contexte dans lequel je serais.

Merci encore pour votre aide.

Il ne me reste plus qu'à m'y remettre en analysant plus profondément mon besoin :briques:

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 27 Juil 2012, 11:09

reaction un peu tardive, mais je partage pas beaucoup l'opinion de CRet.

En commençant à coder et à implémenter son programme avant d'avoir terminer l'analyse du problème est savoir avec précision quelles sont les données, les paramètres et les solutions que l'on souhaite mettre en oeuvre, nbi savoir exactemetn quel seront les résultats (et le format de ce résultat), on prend vite le risque de ne jamais trouver une issue efficace ou pertinante à son projet.

Quand tu commences quelquechose de nouveau, c'est quand même bien de savoir ce que tu peux faire et pas faire, de cerner la difficulté de ce que tu entames.

Il n'y a rien de tel pour ca que faire une maquette très simplifiée chose que ampholyte a faite et que j'approuve totalement en creant ces batiments de meme forme de base que les parcelles mais en plus petites.

Donc je suis d'accord qu'il faut pas foncer tete baissée, se fixer ses contraintes et avoir une idée de ce qu'on veut mais vouloir faire trop compliquer des le debut est un demotivational.

(
Ben c'est pas de la tarte
)

Donc nuancons un petit peu, est-ce que revenir sur ses pas est d'autant de travail perdu? :lol3:
la vie est une fête :)

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 27 Juil 2012, 11:33

sinon pour revenir au problème. Je me suis pas mal penché sur celui-ci.

Je pense que dissocier translation et rotation peut-être pas trop mal.
J'ai laissé tomber le modèle physique parce qu'il présente quelques limites:
- 1) comportement empirique lorsque la forme sort du contour.
- 2) convergence en rotation rarement atteinte.

pour 1), je suis parti sur un calcul d'offset pour faire rentrer la figure a l'intérieure avec un calcul de déplacement max (xmin, xmax, ymin, ymax). Lorsqu'on est en dehors, on calcul la moyenne du déplacement qu'on veut faire et on bouge d'autant que possible (restant dans les bornes xmin,xmax). Idem après sur y.

pour 2), j'ai rien entamé, mais le truc primordial je pense, c'est d'encourager le parallèlisme. Et permettre justement une convergence vers une position qui bouge plus. Je saurais pas décrire si ca va mal converger (genre pas une bonne position), mais ca permettrait au moins de placer les figures a redimensionnement pres.
la vie est une fête :)

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 08:03

par ampholyte » 27 Juil 2012, 12:26

Bonjour,

Merci de poursuivre la résolution de mon problème.

J'ai pu réfléchir d'avantage à la situation.

Mon script doit permettre une génération de ville suivant des contraintes choisies (on reprend l'exemple de la ville américaine par exemple). Mais ce script ne constituera pas un simulation urbain donc tous les détails, textures, végétation et autres détails n'est pas une nécessité.

L'utilisateur de ce script pourra à sa guise tourner les bâtiments pour qu'ils respectent la position de ses lumières (ou du soleil). On reste dans le 3D et dans le cinéma d'animation donc dans la tricherie des lumières, des effets et des couleurs.

Je ne cherche pas à construire une ville réelle mais simplement une ville avec des bâtiments qui ne soient pas tous différents.

On va supposer deux nouvelles choses.
- Je n'ai que 3 types de bâtiments (une maison carré pour les zones pavillonnaires, une maison rectangulaire pour les zones rurales et un immeuble).
- Mes parcelles ne seront que des quadrilatères convexes.


Maintenant pour simplifier le tout, supposons également que lorsque je reçois les informations de ma partielle je récupère également (en plus des coordonnées de mes points) un objet me donnant:
- le côté donnant sur la rue,
- la position de cette parcelle dans la ville (zone d'immeuble, zone rurale, zone pavillonaire)

Avec ces deux seuls informations je suis capable d'orienter correctement mes bâtiments je n'aurais qu'à faire en sorte que la face de mon bâtiment ("l'entrée") soit parallèle au côté donnant sur la rue.
De la même manière je n'aurais qu'à choisir le type de bâtiment et de l'agrandir ou le diminuer.

On supposera également que tous les quadrilatères sont des polygones inscriptibles.

Est-ce que la méthode suivant peut-elle être envisager ?
1) Je récupère le centre du cercle circonscrit et son diamètre de ma parcelle
2) Je récupère le centre du cercle circonscrit et le diamètre de mon bâtiment (déjà orienté)
3) Je fais coïncider les deux centres
4) Tant que le cercle circonscrit de mon bâtiment est supérieur ou égale à 80% de ma parcelle, je diminue la taille de mon bâtiment.

Si c'est une méthode envisageable, peut-on généraliser cette méthode pour un polygone quelconque
tant que celui-ci est inscriptible ?

(Si cela s'avère exacte il me restera à trouver le moyen de calculer les coordonnées du cercle et son diamètre à partir de sa forme quadrilatère pour le moment)

Merci d'avance =)

edit : Fonctionne uniquement pour les polygones réguliers ce qui ne m'avance pas sur le problème (si j'ai un parallélépipède.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 13:39

par Dlzlogic » 27 Juil 2012, 13:37

Je pense que vous vous focalisez entre trop sur le fait de "faire rentrer un bâtiment dans une parcelle".
Imaginons une parcelle en ville. Cette parcelle résulte de la démolition du bâtiment qui l'occupait. Vous souhaitez construire un nouveau bâtiment. Que va faire l'architecte ?
Côté rue, il va se renseigner sur l'alignement, le recul, ça lui donnera sa façade avant.
Sur les deux mitoyennetés, il va construire le bâtiment exactement sur la limite.
A l'arrière, sauf si il y une rue, la profondeur de son bâtiment va dépendre du COS (coefficient d'occupation des sols). Ce sera généralement un parallèle à la façade.
Maintenant qu'on a l'emprise du bâtiment, il suffit de déterminer la hauteur, en gros 2.80 x nombre d'étages, puis la forme de la toiture.

Si vous vous fixez au départ une limitation, polygones réguliers, inscriptibles etc. vous vous limitez inutilement.

Distinction entre 2.5D et 3D.
Il est possible, mais pas sûr que le logiciel de visualisation que vous utilisez travaille en 3D. En tout cas, je vous conseille vivement de travailler en 2.5D, c'est à dire en 2D, avec un Z. Il n'y aura plus qu'à envoyer vos résultats au format attendu par le logiciel extérieur.

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 08:03

par ampholyte » 27 Juil 2012, 13:58

Le problème de mon projet est que je suis assez limité par le logiciel.

Le logiciel que j'utilise est un logiciel de 3D (maya) qui ne comprend que ces propres fonctions.

J'essaye justement pour ce projet de travailler en bas niveau, c'est pour cela que je me ramène à des points et des vecteurs.

Imaginons une parcelle en ville. Cette parcelle résulte de la démolition du bâtiment qui l'occupait. Vous souhaitez construire un nouveau bâtiment. Que va faire l'architecte ?


La parcelle de cette ville ne résulte en aucun cas de la démolition d'un bâtiment mais d'une subdivision d'un bloc créé par l'intersection des routes.

Côté rue, il va se renseigner sur l'alignement, le recul, ça lui donnera sa façade avant.
Sur les deux mitoyennetés, il va construire le bâtiment exactement sur la limite.
A l'arrière, sauf si il y une rue, la profondeur de son bâtiment va dépendre du COS (coefficient d'occupation des sols). Ce sera généralement un parallèle à la façade.


Je comprends parfaitement que si l'on souhaite réaliser un simulateur urbain, toutes ces choses sont importantes.
Mais mon projet n'a pas la prétention de ce genre de chose, il servira uniquement pour faire une sorte de background 3D. Ainsi ces éléments de détails ne sont pas pris en compte dans ce projet.

Supposons que l'utilisateur veut construire une ville background pour son film 3D d'animation (par exemple un cartoon), l'utilisateur veut uniquement qu'une ville soit générée de façon aléatoire. Je ne cherche pas le côté réaliste. Je cherche uniquement à savoir comment déterminer si la base de mon bâtiment est ou non inclus à l'intérieur de ma parcelle. Si son emplacement ne convient pas à l'utilisateur, le logiciel 3D lui procure les outils permettant de le déplacer, le retourner, l'agrandir ect...
Ce que je cherche simplement c'est réussir à ce que chaque base bâtiment soit dans une parcelle sans en sortir.

Maintenant qu'on a l'emprise du bâtiment, il suffit de déterminer la hauteur, en gros 2.80 x nombre d'étages, puis la forme de la toiture.


La hauteur n'importe peu et sera retouchable par l'utilisateur à sa guise. Il en va de même pour le bâtiment, sa forme, sa hauteur, sa largeur ect..

Le but final de mon script est non pas de rendre une ville réaliste, mais de permettre à un utilisateur d'avoir déjà une base sur lequel il pourra effectuer des retouches d'architecte (pour reprendre ton terme).

Merci encore pour votre aide

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 13:39

par Dlzlogic » 27 Juil 2012, 14:33

Oui, j'ai bien compris tout ça, mais ce que j'essaye d'expliquer, c'est que ça ne me parait pas être la bonne approche.
Sauf pour les zones résidentielles diffus, pourquoi fixer a priori les dimensions et formes des bâtiments. Il est beaucoup plus facile de calculer 2 segments parallèles qui déterminent 3 zones dans une parcelle : façade avant, bâtiment, jardin, que de réunir toutes les conditions et faire tous les tests pour mettre un bâtiment pré-construit dans une parcelle.

Concernant les retouches faites par l'utilisateur, n'y pensez pas trop maintenant, c'est beaucoup plus compliqué. Par exemple pour la hauteur, il suffit d'avoir un nombre d'étages aléatoire compris entre 0 et 12 par exemple et multiplier par 2.80.

Je ne cherche en aucun cas à vous faire créer un simulateur urbain, je cherche seulement à vous orienter vers les solutions les plus simples et les plus faciles, tout en évitant des hypothèses limitatives que vous regretterez forcément.
Tous les logiciels ne comprennent et n'exécutent que leurs propres fonctions. Je n'ai pas vu dans la doc de quelle façon on peut démarrer à partir d'objets existants.

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 08:03

par ampholyte » 27 Juil 2012, 14:53

Hum,

Désolé pour ma mauvaise compréhension.

Il est beaucoup plus facile de calculer 2 segments parallèles qui déterminent 3 zones dans une parcelle : façade avant, bâtiment, jardin, que de réunir toutes les conditions et faire tous les tests pour mettre un bâtiment pré-construit dans une parcelle.


Je comprends parfaitement maintenant ce que vous vouliez me dire.

J'essayais juste par ce poste de savoir s'il était possible ou non de savoir si oui ou non un polygone quelconque était dans un autre polygone quelconque.

Votre idée est tout à fait ce que j'ai cherché à faire dans ma première étape (même si la notion de façade avant est inexistant de par la forme des bâtiments). Ma notion de 80% de la parcelle pour la base me permettait de laisser de l'espace tout autour du bâtiment (sachant que les deux centres de masses sont les mêmes) que j'aurais appelé "jardin".

Concernant les retouches faites par l'utilisateur, n'y pensez pas trop maintenant, c'est beaucoup plus compliqué.



Cette partie est justement la partie la plus simple du projet, car Maya est un logiciel de 3D qui propose déjà toutes les options nécessaires à la retouche d'objet 3D.

Début du HS
Pour faire simple dans ce logiciel pour créer un cube il suffit de cliquer sur l'onglet correspond. (polyCube() en code)

Pour créer une sphère, on clique sur l'onglet correspond (ou encore en python exécuter la fonction polySphere())

De plus mon code est actuellement optimisé pour que chaque bâtiment soit considérer comme un objet, ainsi il n'y a qu'à cliquer sur le bâtiment et il est possible de le modifier avec tous les outils disponibles sous le logiciel.
Fin du HS

Par contre, votre poste m'a donné une idée pour améliorer cette interface. Il suffirait que l'utilisateur puisse cliquer sur une icône bâtiment et lui proposerait le choix de sélectionner un bâtiment dans une base. Il ne lui resterait plus qu'à modifier la taille de sa maison mais également de la placer où il le souhaitera sur la ville.

Tous les logiciels ne comprennent et n'exécutent que leurs propres fonctions. Je n'ai pas vu dans la doc de quelle façon on peut démarrer à partir d'objets existants.


Ce que je veux dire par n'exécute que leur propre fonction, c'est qu'il existe des fonctions très spécifique qui ne peuvent être utiliser par d'autre logiciel 3D (pour reprendre mon exemple polyCube() est une fonction typique de Maya)

Mais comment construire le bâtiment sur la surface qui lui sera associé par le découpage puisque pour construire un bâtiment j'ai besoin d'une forme polygonale servant de base (à cause du logiciel justement)

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 13:39

par Dlzlogic » 27 Juil 2012, 15:41

J'ai perdu ma réponse :cry:
Il faudrait savoir comment sont définis les objets attendus par Maya.

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 08:03

par ampholyte » 27 Juil 2012, 15:48

Peux-tu expliciter ce que tu entends par "comment sont définis les objets attendus par Maya." stp ?

Pour faire simple chaque objet attendu par Maya se résume (sans rentré dans les détails) par son nom.
A partir de son nom je peux récupérer, sa position, sa taille, son orientation ( sa rotation), par rapport à un axe (x,z,y).

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 13:39

par Dlzlogic » 27 Juil 2012, 16:45

Bon, donc, les objets sont définis dans une base de données. C'est parfaitement logique.
Mais il a bien fallu les créer et ensuite les mettre dans cette base en leur donnant un nom.

Voila ce que je disais dans ma réponse perdue.
Un bâtiment est constitué de 3 éléments
1- la dalle : un polygone fermé, généralement horizontal
2- les murs qui sont des rectangles ou des trapèzes rectangles dont la base correspond à chaque côté de la dalle.
3- la toiture qui peut être constituée de 1 à n polygones, suivant le nombre de pentes.

Ces éléments existent forcément dans la base de données, sous quelle forme sont-ils organisés, comment ont-ils été créés, peut-on en créer à la demande et automatiquement etc.

Peut-on lire et/ou écrire des données au format DXF ?

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 08:03

par ampholyte » 27 Juil 2012, 17:13

C'est beaucoup plus simple que ça.

Voilà comment je construis une maison actuellement.

Par la suite ce que j'appellerais Curve correspondra en mathématiques à un segment.

Je pars d'un ensemble de point qui définit ma base.
Pour chaque point :
projection vertical du point
création d'une curve entre le point de base et le point projeté en Y

Pour chaque nouveauPointConstruit:
projection suivant le vecteur pointant vers le centre de masse de la base mais projeté en Y
création d'une curve entre le nouveauPointConstruit et le centre de masse

Je sélectionne toutes ces curves et je n'ai plus qu'à appliquer une fonction sous maya qui me créera toutes les faces qui vont bien.

Maintenant j'ai trouvé une méthode pour créer des maisons plus sympa qui constituera une base de donnée.

Je possède les points de ma base.
Je les projette sur l'axe Y.
Ensuite je trace une curve me donnant la forme du haut de mon toit
J'utilise la même fonctions que précédemment.

J'espère que tu as pu comprendre quelque chose. N'hésite pas à me demander.
J'essayerais d'inclure des screenshot pour montrer les 2 étapes fondamentales, en gros, le squelette et la modélisation.

Pour ce qui est de la création automatique cela revient à ma première façon de faire. Soit pour chaque parcelle créer un bâtiment qui respecte exactement la forme du terrain.

Il a l'air d'être possible de pouvoir lire des fichiers DXF dans maya. L'écriture pose quelques soucis en revanche.
Je ne connais absolument rien de ce format.

Quel est l'utilité de ce format ? Penses-tu que ce format pourra me permettre de stocker des informations nécessaire ?

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 13:39

par Dlzlogic » 27 Juil 2012, 18:38

Pour la construction de la maison, c'est bien ça : à partir de la base on construit une parallèle qui génère des murs.
Le format DXF date de la fin des années 1980. Il a tous les inconvénients, sauf d'être connus de tous les logiciels de CAO-DAO.
Comme tous les formats de données, c'est un format de communication avec d'autres logiciels.
Donc, à mon avis, pour tous les immeubles, je crois que ce serait mieux de les construire à la demande, pas forcément sur toute la parcelle.
Pour les maisons isolées sur une grande parcelle, zone résidentielle, la solution de maison sur catalogue est la bonne, je crois. Par contre, j'ai des doutes sur la méthode du centre de gravité

Pour qu'un immeuble n'occupe pas toute la parcelle, il y une méthode simple, c'est de diviser la parcelle en deux ou trois zones, et seulement l'une d'elle est constructible.

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 08:03

par ampholyte » 27 Juil 2012, 19:49

Pour les maisons isolées sur une grande parcelle, zone résidentielle, la solution de maison sur catalogue est la bonne, je crois. Par contre, j'ai des doutes sur la méthode du centre de gravité


La méthode du centre de gravité me permet uniquement de faire converger mes points pour fermer mon toit.
C'est le seul point que j'ai trouvé le plus intéressant sur un polygone quelconque convexe et qui me donnait un résultat plus que correct.


Donc, à mon avis, pour tous les immeubles, je crois que ce serait mieux de les construire à la demande, pas forcément sur toute la parcelle.


Je n'ai pas compris ce que tu veux dire pas à la demande. Pourrais-tu expliciter un peu mieux ce que tu voulais dire par là ?

Pour qu'un immeuble n'occupe pas toute la parcelle, il y une méthode simple, c'est de diviser la parcelle en deux ou trois zones, et seulement l'une d'elle est constructible.


Hum, ne serait-ce pas bizarre comme rendu final si les immeubles sont placés n'importe comment dans la parcelle (dans n'importe quelle zone ?) ?

Ne serait-il pas plus "réaliste" de les mettre au centre de leur parcelle (derrière le jardin, devant l'entrée) ?

Merci infiniment pour vos réponses, cela me permet d'avancer énormément dans l'évolution que va prendre mon projet.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 13:39

par Dlzlogic » 27 Juil 2012, 20:03

ampholyte a écrit:La méthode du centre de gravité me permet uniquement de faire converger mes points pour fermer mon toit.
C'est le seul point que j'ai trouvé le plus intéressant sur un polygone quelconque convexe et qui me donnait un résultat plus que correct.
Pour ça, complètement d'accord.


Hum, ne serait-ce pas bizarre comme rendu final si les immeubles sont placés n'importe comment dans la parcelle (dans n'importe quelle zone ?) ?

Ne serait-il pas plus "réaliste" de les mettre au centre de leur parcelle (derrière le jardin, devant l'entrée) ?

Je n'ai pas compris ce que tu veux dire pas à la demande. Pourrais-tu expliciter un peu mieux ce que tu voulais dire par là ?
On a une parcelle qui va depuis la rue, jusque très loin. On la divise en 3
1- 5m de recul,
2- 15m. de profondeur,
3- le reste
Puis on dit que seule la parcelle N°2 est constructible.
Et naturellement l'immeuble est construit de mitoyen à mitoyen, comme dans la réalité.
Cela sous-entend que on sache dans le polygone quel est la partie "front-à-rue" de la parcelle, on en déduit des 2 mitoyens. C'est pas très difficile, et ça me parait indispensable.

Mais tout ça m'amuse beaucoup, et me rappelle de vieux souvenirs, que je ne raconterais que par MP.

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 52 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite