ขอต้อนรับ ผู้มาเยือน กรุณา ล็อกอิน หรือ สมัครสมาชิก

ล็อกอินด้วยชื่อผู้ใช้ รหัสผ่่าน และระยะเวลาใช้งาน

 
Advanced search

41500 Posts in 6261 Topics- by 9229 Members - Latest Member: NONNY
Pages: 1   Go Down
Print
Author Topic: Barnsley_fern  (Read 3026 times)
0 Members and 1 Guest are viewing this topic.
FogRit
SuperHelper
*****
Offline Offline

Posts: 898


มีอะไร ใช้อย่างนั้น


« on: December 27, 2010, 02:05:38 PM »

เร็วๆ นี้ผมลองทำเพิ่มอีกดูๆ ไปแล้วเหมือนใบมันผอมไปหน่อยครับ
ใครเคยทำแล้วใบมันผอมๆ บ้างไหมครับ ?


http://en.wikipedia.org/wiki/Barnsley_fern
Code:
int main()
{ double a,b,c,d,e,f,x=0,y=0,p;
int i,n=100000;
long seed = 1;
for(i=0;i<n;i++){
p = ran2(&seed);
if(p<0.01){ //f1
a = b = c = e = f = 0;
d = 0.16;
}
else if((0.01<=p)&&(p<=0.08)){ //f3
a = 0.2; b = -0.26; c = 0.23;
d = 0.22; e = 0 ; f = 1.6;
}
else if((0.08<=p)&&(p<=0.15)){ //f4
a = -0.15; b = 0.28; c = 0.26;
d = 0.24; e = 0 ; f = 0.44;
}
else if(0.15<p){ //f2
a = 0.85; b = 0.04; c = -0.04;
d = 0.85; e = 0   ; f = 1.6;
}
x = a*x + b*y + e;
y = c*x + d*y + f;
printf("%f\t%f\n",x,y);
}
return 0;
}
« Last Edit: December 27, 2010, 02:19:51 PM by Foggy_Ritchy » Logged

อดทนและทำงานอย่างสอดคล้องกับธรรมชาติ
psaipetc
SuperHelper
*****
Offline Offline

Posts: 653


kostuff.blogspot.com


WWW
« Reply #1 on: December 27, 2010, 10:56:07 PM »

ผมว่าแกน x มันคนละสเกลกับแกน y เลยทำให้ใบดูผอมไปหรือเปล่าครับ
Logged

Life Lessons (related to science anyway):
http://www.guardian.co.uk/print/0,3858,5164417-111414,00.html
FogRit
SuperHelper
*****
Offline Offline

Posts: 898


มีอะไร ใช้อย่างนั้น


« Reply #2 on: December 28, 2010, 03:33:21 PM »


ขอบคุณสำหรับคำแนะนำครับอ.พงศกร
แก้ได้แล้วครับ ศึกษาจาก source code คนอื่น ปรากฏว่าเป็นปัญหาทางเทคนิคการเขียนโปรแกรมครับ
ผมต้องทำตัวแปรเพิ่มคือ
Code:
newx = a*x + b*y + e;
newy = c*x + d*y + f;
x = newx;
     y = newy;

เข้าไปด้วยครับ
Code:
if(p<0.01){ //f1
a = b = c = e = f = 0;
d = 0.16;
newx = a*x + b*y + e;
newy = c*x + d*y + f;
x = newx;
     y = newy;

}
else if((0.01<=p)&&(p<=0.08)){ //f3
a = 0.2; b = -0.26; c = 0.23;
d = 0.22; e = 0 ; f = 1.6;
newx = a*x + b*y + e;
newy = c*x + d*y + f;
x = newx;
     y = newy;
}
else if((0.08<=p)&&(p<=0.15)){ //f4
a = -0.15; b = 0.28; c = 0.26;
d = 0.24; e = 0 ; f = 0.44;
newx = a*x + b*y + e;
newy = c*x + d*y + f;
x = newx;
     y = newy;
}
else if(0.15<p){ //f2
a = 0.85; b = 0.04; c = -0.04;
d = 0.85; e = 0  ; f = 1.6;
newx = a*x + b*y + e;
newy = c*x + d*y + f;
x = newx;
     y = newy;
}
printf("%f\t%f\n",x,y);
}
Logged

อดทนและทำงานอย่างสอดคล้องกับธรรมชาติ
psaipetc
SuperHelper
*****
Offline Offline

Posts: 653


kostuff.blogspot.com


WWW
« Reply #3 on: December 28, 2010, 07:04:00 PM »

เฟิร์นดูอ้วนแล้วครับ   Smiley
Logged

Life Lessons (related to science anyway):
http://www.guardian.co.uk/print/0,3858,5164417-111414,00.html
FogRit
SuperHelper
*****
Offline Offline

Posts: 898


มีอะไร ใช้อย่างนั้น


« Reply #4 on: December 28, 2010, 08:24:20 PM »

 Grin
Logged

อดทนและทำงานอย่างสอดคล้องกับธรรมชาติ
Pages: 1   Go Up
Print
Jump to: