View previous topic :: View next topic |
Author |
Message |
nextstep Site Admin
Joined: 06 Jan 2007 Posts: 539
|
Posted: Wed Oct 22, 2014 5:31 am Post subject: Thick parametric surfaces |
|
|
Hi,
As for the implicit surfaces, we can give some thickness to a parametric surface (F) by defining a second parametric surface (G) with the formula:
"Gx": ["Fx(u,v,t) + T*n1(u,v,t)/R(u,v,t)"],
"Gy": ["Fy(u,v,t) + T*n2(u,v,t)/R(u,v,t)"],
"Gz": ["Fz(u,v,t) + T*n3(u,v,t)/R(u,v,t)"]
Where T = Thickness value;
"n1 = (a2(u,v,t)*b3(u,v,t)-a3(u,v,t)*b2(u,v,t))",
"n2 = (a3(u,v,t)*b1(u,v,t)-a1(u,v,t)*b3(u,v,t))",
"n3 = (a1(u,v,t)*b2(u,v,t)-a2(u,v,t)*b1(u,v,t))",
"R = sqrt(n1(u,v,t)^2 + n2(u,v,t)^2 + n3(u,v,t)^2)"
" a1 = dFx/du",
" a2 = dFy/du",
" a3 = dFz/du",
" b1 = dFx/dv",
" b2 = dFy/dv",
" b3 = dFz/dv"
With the parametric Torus, you obtain this:
Quote: |
{
"Param3D": {
"Name": [
"Torus"
],
"Component": [
"Torus_1",
"Torus_2"
],
"Const": [
"T=1.3"
],
"Funct": [
"Fx = (1+0.5*cos(u))*cos(v)",
"Fy = (1+0.5*cos(u))*sin(v)",
"Fz = 0.5*sin(u)",
"a1 = (-0.5*sin(u)*cos(v))",
"a2 = (-0.5*sin(u)*sin(v))",
"a3 = (0.5*cos(u))",
"b1 = (-(1+0.5*cos(u))*sin(v))",
"b2 = ((1+0.5*cos(u))*cos(v))",
"b3 = 0",
"n1 = (a2(u,v,t)*b3(u,v,t)-a3(u,v,t)*b2(u,v,t))",
"n2 = (a3(u,v,t)*b1(u,v,t)-a1(u,v,t)*b3(u,v,t))",
"n3 = (a1(u,v,t)*b2(u,v,t)-a2(u,v,t)*b1(u,v,t))",
"R = sqrt(n1(u,v,t)^2 + n2(u,v,t)^2 + n3(u,v,t)^2)",
"Gx = Fx(u,v,t) + T*n1(u,v,t)/R(u,v,t)",
"Gy = Fy(u,v,t) + T*n2(u,v,t)/R(u,v,t)",
"Gz = Fz(u,v,t) + T*n3(u,v,t)/R(u,v,t)"
],
"Fx": [
"Fx(u,v,t)",
"Gx(u,v,t)"
],
"Fy": [
"Fy(u,v,t)",
"Gy(u,v,t)"
],
"Fz": [
"Fz(u,v,t)",
"Gz(u,v,t)"
],
"Umax": [
"2*pi",
"2*pi"
],
"Umin": [
"0",
"0"
],
"Vmax": [
"5*pi/3",
"5*pi/3"
],
"Vmin": [
"0",
"0"
]
}
}
|
Torus by taha_ab, on Flickr
Enjoy
 _________________ Cheers,
Abderrahman |
|
Back to top |
|
 |
nextstep Site Admin
Joined: 06 Jan 2007 Posts: 539
|
Posted: Mon Oct 05, 2015 12:24 pm Post subject: |
|
|
This is the first implementation of the algorithm for building "Thick" parametric surfaces. Here you can see the result when applied to the "Richmond polar" parametric surface:
MathMod script:
{
"Param3D": {
"Description ": ["Thick Richmond polar Parametric surface by Abderrahman Taha 04/10/2015"],
"Name": ["ThicknessParametric"],
"Component": ["richmondpolar1",
"richmondpolar2"],
"Const": ["cu=0.0000000000001",
"cv=0.0000000000001"],
"Funct": ["Fx=-cos(t+v)/(2*u)-u^3*cos(t-3*v)/6",
"Fy=-sin(t+v)/(2*u)+u^3*sin(t-3*v)/6",
"Fz=u*cos(t-v)",
"DFxu=((Fx(u,v,t)-Fx(u+cu,v,t))/cu)",
"DFxv=((Fx(u,v,t)-Fx(u,v+cv,t))/cv)",
"DFyu=((Fy(u,v,t)-Fy(u+cu,v,t))/cu)",
"DFyv=((Fy(u,v,t)-Fy(u,v+cv,t))/cv)",
"DFzu=((Fz(u,v,t)-Fz(u+cu,v,t))/cu)",
"DFzv=((Fz(u,v,t)-Fz(u,v+cv,t))/cv)",
"n1=(DFyu(u,v,t)*DFzv(u,v,t)-DFzu(u,v,t)*DFyv(u,v,t))",
"n2=(DFzu(u,v,t)*DFxv(u,v,t)-DFxu(u,v,t)*DFzv(u,v,t))",
"n3=(DFxu(u,v,t)*DFyv(u,v,t)-DFyu(u,v,t)*DFxv(u,v,t))",
"R=sqrt(n1(u,v,t)^2+n2(u,v,t)^2+n3(u,v,t)^2)",
"Tickness=.3",
"Gx=Fx(u,v,t)+Tickness(u,v,t)*n1(u,v,t)/R(u,v,t)",
"Gy=Fy(u,v,t)+Tickness(u,v,t)*n2(u,v,t)/R(u,v,t)",
"Gz=Fz(u,v,t)+Tickness(u,v,t)*n3(u,v,t)/R(u,v,t)"],
"Fx": ["Fx(u,v,t)",
"Gx(u,v,t)"],
"Fy": ["Fy(u,v,t)",
"Gy(u,v,t)"],
"Fz": ["Fz(u,v,t)",
"Gz(u,v,t)"],
"Umax": ["1.3",
"1.3"],
"Umin": ["0.3",
"0.3"],
"Vmax": ["2*pi",
"2*pi"],
"Vmin": ["0",
"0"]
}
}
richmond2 by taha_ab, on Flickr
Double Nib1 by taha_ab, on Flickr
Bat Suit by taha_ab, on Flickr _________________ Cheers,
Abderrahman |
|
Back to top |
|
 |
nextstep Site Admin
Joined: 06 Jan 2007 Posts: 539
|
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
2005 Powered by phpBB © 2001, 2005 phpBB Group
|