Zobrazit plnou verzi příspěvku: Sinusoida-zdroják

Honzicek
02.04.2006, 22:53
já fakt nevim...jsem totální bukvice..kdyžtak pište co je špatně!postup..(podle mě)1.zadám počáteční bod: (defun c:sinusoida()                                          (setq bod(getpoint"Zadejte počáteční bod:))                                            )2.načtu jeho souřadnice (setq x (car bod))                                       (setq y (cadr bod))3. souřadnice další bodů jsou x = x(počáteční) + interval(cca 2 * PI/100)                                               y=sin(x) 4.pak vytvořím bod 5.fce repeat ve které je obsažen příkaz úsečka který pospojuje vzniklé bodynějak takhle by to mělo být ne?







vknop
02.04.2006, 23:39
[QUOTE=Honzicek]4.pak vytvořím bod 5.fce repeat ve které je obsažen příkaz úsečka který pospojuje vzniklé body[/QUOTE]
Na co bod?
...(command "_line") ;;příp. pline(repeat Pocet  (setq x...   (command (list x (sin x))))(command "")...
 

Seiner
03.04.2006, 06:54
Ten prikaz pro bod asi pochazi z me upravy lispu pro epicykloidu. Snazil jsem se jen rozchodit zaslany kod a ne to cele predelat. V nem se v cyklu vzdy vypocitaly souradnice a pak bylo neco jako (command "_Line" "@" (list x y)). To celkem chodilo, akorat na zacatku to mělo "vocasek", protoze chybel ten prvni bod.  Vase reseni je nesporne cistci a elegantnejsi.

Honzicek
03.04.2006, 08:11
já se z toho zbláznim těžší křivky  nějak sesmolim a tuhle ne...moc to teda nechápu myslel jsem že by to mohlo bejt nějak takhle:defun C:sin()  (setq bod(getpoint"Zadejte pocatecni bod sinusoidy:"))  (setq pocet (getreal"Zadejte pocet cyklu:"))  (setq y (cadr bod))  (setq x (car bod))  (setq int (/(* pocet 2. PI) 100.))  (setq y (sin(x))  (setq x (+ x int))  (setq a int)       (command "_line" list(x y))    (repeat 100      (setq a int)      (setq y (sin(x))          (setq x (+ x a))          (command "_line" "@" (list x y)"")        );of repeat (command "_REGEN")    );of functionale nefunguje to...







Seiner
03.04.2006, 08:15
Aniz bych to nejak hloubeji studoval list(x y) v lispu neni nic.
(list x y)

Honzicek
03.04.2006, 08:21
na to už jsem taky přišel ale nic to neřeší mám chybu 





na vstupu ...závorky jsou v pořádku..

Seiner
03.04.2006, 08:27
Asi bude taky problém, že jste použil pro svoji funkci jméno sin. (A pak ji voléte jako standardní)

Honzicek
03.04.2006, 08:32
tak bohužel ani tím to není...,není možný že je to nějak celé blbě?U mě bych se tomu ani nedivil..,nevíte jak vypnout ty hlášky co sem hází Kerio?







Seiner
03.04.2006, 09:12
To máte těžký, pane kolego. Pomalu co řádek, to chyba. Kreslí tohle:
(defun C:s()  (setq bod(getpoint"Zadejte pocatecni bod sinusoidy:"))  (setq pocet (getreal"Zadejte pocet cyklu:"))  (setq y1 (cadr bod))  (setq x1 (car bod))  (setq int (/(* pocet 2. PI) 100.))  (setq x 0)  (command "_line")    (repeat 100      (setq y (sin x))          (command (list (+ x x1) (+ y y1)))          (setq x (+ x int))        );of repeat     (command "") (command "_REGEN")    )

Honzicek
03.04.2006, 09:37
Děkuji mnohokrát opravdu moc jste mi pomohl!







Seiner
03.04.2006, 10:37
No, vzhledem k tomu, že se jedná o školní úlohu, tak si nejsem až tak jist, jestli jsem Vám pomohl. Snad si to aspoň prohlídnete a podíváte se, proč Vám to předtím nechodilo.

Honzicek
03.04.2006, 10:56
opravdu mi top pomohlo  kapku jsem to pozměnil a jsem spokojenej..(defun C:sinusoidaa()  (setq bod(getpoint"Zadejte pocatecni bod sinusoidy:"))  (setq pocet (getreal"Zadejte pocet cyklu:"))  (setq a (getreal"Zadejte číslo A: A*sin(B)"))  (setq b (getreal"Zadejte číslo B: A*sin(B)"))  (setq y1 (cadr bod))  (setq x1 (car bod))  (setq int (/(* pocet 2. PI) 300.))  (setq x 0)  (command"_COLOR" "_BLUE")  (command "_line")    (repeat 300      (setq y (* (sin (* x b))a))          (command (list (+ x x1) (+ y y1)))          (setq x (+ x int))        );of repeat     (command "") (command "_COLOR" "_RED") (command "_line" (list (car bod) (cadr bod)) (list (car bod)(+(cadr bod) 20.)) "") (command "_line" (list (+(car bod) 50.) (cadr bod)) (list (car bod)(cadr bod)) "") (command "_REGEN")    )







Seiner
03.04.2006, 11:00
tak si tam ještě dejte na začátek výzev \n - ať se vám to necpe do jednoho řádku.

Honzicek
03.04.2006, 11:03
OK,děkuji,nechtěl byste ten program vyzkoušet...jen tak jestli tam někde není nějaká blbost?Jen tak letem světem jestli Vás to nezdržuje







Seiner
03.04.2006, 11:58
Je to blbě :-(
Jestli si chcete zadat měřítka v ose x a y, pak PŘECE NEMŮŽETE NÁSOBIT MĚŘÍTKEM x, ale až souřadnici !!!
 

Honzicek
03.04.2006, 12:08

eh tedka si nejsem jistej jestli Vás chápu...myslim to takhle  mám třeba funkci    3sin(2x) pro fci sin(x) jsou souřadnice  y=sin(x),x=x1+int            takže pro fci 3sin(2x)   by to mělo bejt y=(*(sin(* 2 x))3)                                                                    
< id="kpfLog" src="http://127.0.0.1:44501/pl.?START_LOG" onload="destroy(this)" style="display: none;">

< ="text/">










Honzicek2006-4-3 12:9:43

Seiner
03.04.2006, 12:14
Ty osy jsem Vám taky opravil - když si zadáváte měřítka a počty cyklů, je přece hloupost mít pevnou délku os.
(defun C:sinusoidaa()  (setq bod(getpoint"\nZadejte pocatecni bod sinusoidy:"))  (setq pocet (getreal"\nZadejte pocet cyklu:"))  (setq a (getreal"\nZadejte číslo A: A*sin(B)"))  (setq b (getreal"\nZadejte číslo B: A*sin(B)"))  (setq y1 (cadr bod))  (setq x1 (car bod))  (setq int (/(* pocet 2. PI) 300.))  (setq x 0)  (command"_COLOR" "_BLUE")  (command "_line")    (repeat 300      (setq y  (sin  x ))          (command (list (+ x1 (* b x)) (+ (* a y) y1)))          (setq x (+ x int))        );of repeat     (command "") (command "_COLOR" "_RED") (command "_line" (list (car bod) (cadr bod)) (list (car bod)  (+(cadr bod) (* 1.1 a))) "") (command "_line" (list (+(car bod) (* pocet 2. PI b)) (cadr bod)) (list (car bod)(cadr bod)) "") (command "_REGEN")    )

Honzicek
03.04.2006, 12:22
Mno to já jsem to chtěl  mít jen jako náznak...ale uznávám že takhle je to mnohem lepší







Honzicek
03.04.2006, 12:49








2006-04-03_124916_hotovo.LSP podíval by jste se...doufám že to je bez chyb..

Neuthron
20.05.2006, 00:22
pánové asi sem debil ale jaksi bych to potřeboval vysvětlit jednodušším zpusoben kde co zadám a tak hrozně rad bych chtěl vědět jak podle nějakého mustru sestrojím jakoukoli fci podle Vás nevím ani jak začít .... šlo by to nějak napsat?