Právě je ned pro 01, 2024 12:57 am

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 18 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: Průsečík dvou edges?
PříspěvekNapsal: úte úno 12, 2008 12:00 am 
Offline
..
..

Registrován: pon lis 19, 2007 4:53 pm
Příspěvky: 63
Bydliště: Rokytnice v Orl. horách
Měl bych takový malý dotaz ohledně průsečíku dvou edges. Existuje v Blenderu nějaká fce nebo postup, jak to realizovat?


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: úte úno 12, 2008 4:48 pm 
Offline
......
......
Uživatelský avatar

Registrován: pon čer 05, 2006 8:34 pm
Příspěvky: 909
Bydliště: Liberec
:?:
popravde receno jsem nepochopil co tim myslis?
rekl jsi, ze mas problem ohledne neceho, ale nedefinoval jsi problem


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: úte úno 12, 2008 9:02 pm 
Offline
..
..

Registrován: pon lis 19, 2007 4:53 pm
Příspěvky: 63
Bydliště: Rokytnice v Orl. horách
Ale řekl.. 8) Potřebuji vytvořit průsečík (bod) dvou edges (přímek), které se kříží. Jak na to? Je v blenderu nějaká fce a nebo je na to nějaký postup?


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: úte úno 12, 2008 9:18 pm 
Offline
.....
.....
Uživatelský avatar

Registrován: pát srp 25, 2006 1:23 pm
Příspěvky: 429
Bydliště: Pardubice
Myslím že žádná taková fce v blenderu není, řekl bych, že v tomto případě pomůže akorát knife (k).
A nebo můžeš zkusit něco naprogramovat v pythonu.


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: úte úno 12, 2008 10:46 pm 
Offline
..
..

Registrován: pon lis 19, 2007 4:53 pm
Příspěvky: 63
Bydliště: Rokytnice v Orl. horách
Tak to něco málo už v pythonu mám... Je to stále rozpracované...
Kód:
# Autor: Zdenek Koukol, (c) ZDENDOS COMPANY 2008
# ----------------------------------------------
# Fce najde prusecik dvou edges
# Testovano v Blender v 2.44 a 2.45
# Ver: 0.2

import Blender

if (Blender.Get("version") != 244) and (Blender.Get("version") != 245):
   print "Warning: Pro tuto verzi Blenderu nebyl script testovan."

objekty = Blender.Object.GetSelected()
if (len(objekty) != 1):
   print "Error: Vyberte pouze jeden objekt!"
else:
   objekt = objekty[0]
   if objekt.type != "Mesh":
      print "Error: Vyberte objekt typu MESH!"
   else:
      muj_mesh = objekt.getData()
      if Blender.Window.EditMode():
         print "Error: Nesmis byt v editacnim modu!"
      else:
         vybrane_usecky = []
         for usecka in muj_mesh.edges[:]:
            if (usecka.flag & 0x01): vybrane_usecky.append(usecka)
         
         if (len(vybrane_usecky) != 2):
            print "Error: Musis mit vybrany dve edges!"
         else:
            bodA = vybrane_usecky[0].v1
            bodB = vybrane_usecky[0].v2
            bodC = vybrane_usecky[1].v1
            bodD = vybrane_usecky[1].v2
         
            t = 0.0
            s = 0.0
         
            xE = 0.0
            yE = 0.0
            yE = 0.0
         
            xF = 0.0
            yF = 0.0
            yF = 0.0

            xA = (bodA.co[0])
            yA = (bodA.co[1])
            zA = (bodA.co[2])

            xB = (bodB.co[0])
            yB = (bodB.co[1])
            zB = (bodB.co[2])

            xC = (bodC.co[0])
            yC = (bodC.co[1])
            zC = (bodC.co[2])

            xD = (bodD.co[0])
            yD = (bodD.co[1])
            zD = (bodD.co[2])
            
            t = (yC*(xD - xC) - yA*(xD - xC) + xA*(yD - yC) - xC*(yD - yC)) / (((yB - yA) * (xD - xC)) - ((xB - xA) * (yD - yC)))
            s = (xA - xC + t*(xB - xA)) / (xD - xC)

            xE = xA + t*(xB - xA)
            yE = yA + t*(yB - yA)
            zE = zA + t*(zB - zA)                  
         
            xF = xC + s*(xD - xC)
            yF = yC + s*(yD - yC)
            zF = zC + s*(zD - zC)                  
            
            bod = Blender.NMesh.Vert(((xE + xF)/2), ((yE + yF)/2), ((zE + zF)/2))   
            muj_mesh.verts.extend([bod])
            muj_mesh.update()


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: úte úno 12, 2008 10:47 pm 
Offline
..
..

Registrován: pon lis 19, 2007 4:53 pm
Příspěvky: 63
Bydliště: Rokytnice v Orl. horách
Já se hlavně, ptám, zda to má smysl vůbec ten skript dodělat a nebo ne. Ale jelikož v blenderu taková fce není, tak proč ne.


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: úte úno 12, 2008 11:49 pm 
Offline
....
....
Uživatelský avatar

Registrován: čtv srp 03, 2006 9:44 pm
Příspěvky: 233
V prostoru obecně nemusí průsečík dvou hran existovat. Takže jde spíš o to, najít bod na hraně, který je nejblíž jiné hraně.


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: úte úno 12, 2008 11:53 pm 
Offline
........
........
Uživatelský avatar

Registrován: stř bře 30, 2005 1:50 pm
Příspěvky: 1316
Bydliště: Praha
Nemusíš, ale pokud používáš "ctrl" při hýbání s vertexy apod., není to zas tak nepravděpodobné...


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: stř úno 13, 2008 12:02 am 
Offline
....
....
Uživatelský avatar

Registrován: čtv srp 03, 2006 9:44 pm
Příspěvky: 233
Problém je i v tom, že přesnost souřadnic je konečná a pokud nemají jednu souřadnici vyloženě společnou, tak je velká pravděpodobnost, že tam průsečík není -> zjišťování průsečíku povede opět na problém nejbližšího bodu.


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: stř úno 13, 2008 12:48 am 
Offline
..
..

Registrován: pon lis 19, 2007 4:53 pm
Příspěvky: 63
Bydliště: Rokytnice v Orl. horách
Ale to by zase tolik nevadilo, kdyby se tento průsečík promítl do jedné z nich a tuto křivku by rozdělil (i kdyby to nebyl skutečný průsečík)


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: stř úno 13, 2008 10:58 am 
Offline
....
....
Uživatelský avatar

Registrován: úte lis 15, 2005 10:57 pm
Příspěvky: 637
Bydliště: Brno
nehledate toto?
Tutorial
http://www.hybird.org/~guiea_7/
Script
http://blenderartists.org/forum/showthr ... light=geom


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: stř úno 13, 2008 6:31 pm 
Offline
..
..

Registrován: pon lis 19, 2007 4:53 pm
Příspěvky: 63
Bydliště: Rokytnice v Orl. horách
Hm, zatím to vypadá podle ukázek velmi dobře...


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: čtv úno 14, 2008 6:37 pm 
Offline
..
..

Registrován: pon lis 19, 2007 4:53 pm
Příspěvky: 63
Bydliště: Rokytnice v Orl. horách
Tak skript jsem nainstaloval... Ale nějak jsem nepříšel, jak ho aktivovat...


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: pát úno 15, 2008 2:05 pm 
Offline
....
....
Uživatelský avatar

Registrován: úte lis 15, 2005 10:57 pm
Příspěvky: 637
Bydliště: Brno
bohuzel nemam se scriptem zadnou zkusenost, jen jsem nasel toto info asi pred rokem na webu (mozna jede jen s nejakou starsi verzi? netusim)


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: sob úno 16, 2008 10:53 pm 
Offline
..
..

Registrován: pon lis 19, 2007 4:53 pm
Příspěvky: 63
Bydliště: Rokytnice v Orl. horách
Hm, porad na to nejak nemohu prijit. Tak stale vyuzivam svuj skript... Tam jsem jsi jist... :-)


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 18 ]  Přejít na stránku 1, 2  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 25 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
cron
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz