Art of Problem Solving

User:Me@home: Difference between revisions

Me@home (talk | contribs)
No edit summary
Me@home (talk | contribs)
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
Version 1:
<asy>
<asy>
import three;
unitsize(4cm);
size(50);
currentprojection=orthographic(1/2,-1,1/2);
label("(5,38)",(0,0,0));
label("(4,29)",(0,1,0));
label("(4,35)",(1,0,0));
label("(4,39)",(1,1,0));
label("(0,30)",(0,0,1));
label("(2,38)",(0,1,1));
label("(5,39)",(1,0,1));
label("(3,46)",(1,1,1));
label("(4,46)",(0,0,2));
label("(3,46)",(0,1,2));
label("(0,36)",(1,0,2));
label("(2,46)",(1,1,2));


unitsize(.5cm);
pair bar(pair a) {
return (a.x,-a.y);
};
pair A[] = { (6.5,0),(1.5,12) };
pair P[] = { A[0],A[1],-bar(A[1]),-bar(A[0]),(2A[0]-bar(A[0]))/3,(2A[0]+A[1])/3,
(5A[0]-4bar(A[0]))/9,(5A[0]+4A[1])/9
};
pair D[] = { (2P[4]+P[5])/3,(P[4]+2P[5])/3 };
draw( D[0]--P[6] ,blue+1mm);
draw( D[0]--P[4] ,blue+1mm);
draw( P[6]--P[4], black+1mm);
pair E[] = {(D[0]+P[6])/2,D[0] + P[6] - P[4]};
dot(E[0]);dot(E[1]);
draw(P[6]--E[1],red+1mm);
draw(P[4]--E[1],red+1mm);
draw(P[4]--P[5]);
draw( D[0] -- E[1]);
draw(D[1]--P[7]);
draw( P[3] -- P[0] -- P[1]) ;
for(int i=0;i<10;++i) {
if(i<4) {


label("Sitting 1",(2.5,0,0));
} else {
label("Sitting 2",(2.5,1,0));
dot( (i<8) ? P[i] : D[i-8] );
 
draw((1,0,0)--(2,0,0));
draw((1,1,0)--(2,1,0));
 
label("Area 1",(0,-1.5,0));
label("Area 2",(1,-1.5,0));
 
draw((0,0,0)--(0,-1,0));
draw((1,0,0)--(1,-1,0));
 
 
draw((0,0,0)--(1,0,0)--(1,1,0)--(0,1,0)--cycle3,red);
 
draw((0,0,0)--(0,0,1));dot((0,0,.5));
draw((0,1,0)--(0,1,1));dot((0,1,.4));
draw((1,1,0)--(1,1,1));dot((1,1,.4));
draw((1,0,0)--(1,0,1));dot((1,0,.4));
 
draw((0,0,.5)--(0,1,.4)--(1,1,.4)--(1,0,.4)--cycle3,blue);
 
 
 
draw((0,0,1)--(1,0,1)--(1,1,1)--(0,1,1)--cycle3,green);
 
 
draw((0,0,1)--(0,0,2));
draw((0,1,1)--(0,1,2));
draw((1,1,1)--(1,1,2));
draw((1,0,1)--(1,0,2));
draw((0,0,2)--(1,0,2)--(1,1,2)--(0,1,2)--cycle3,blue);
</asy>
 
Version 2 (better code, looks cooler with opacities):
<asy>
import three;
unitsize(4cm);
size(50);
currentprojection=orthographic(-1/2,-1,1/2);
 
pair arr[] =
{
(5,38),(4,29),
(4,35),(4,39),
(0,30),(2,38),
(5,39),(3,46),
(4,46),(3,46),
(0,36),(2,46)
};
 
string locale[] =
{
"Camassia",
"Tanner Creek",
"Mary S. Young"
};
int is(int a,int b) { return a==b ? 1 : 0; }
 
for(int i = 0; i<12; ++i) {
label((string) arr[i] , (floor(i%4/2),i%2,floor(i/4)) );
if(i%4==0) {
draw((0,0,floor(i/4))--(1,0,floor(i/4))--(1,1,floor(i/4))--(0,1,floor(i/4))--cycle3,
rgb(
is(floor(i/4),1),
is(floor(i/4),2),
is(floor(i/4),0))
);
int a = floor(i/4);
fill((0,0,arr[4a].x/10 + a)--(0,1,arr[4a+1].x/10 + a)--(1,1,arr[4a+3].x/10 + a)--(1,0,arr[4a+2].x/10 + a)--cycle,purple+opacity(.1));
fill((0,0,arr[4a].y/50 + a)--(0,1,arr[4a+1].y/50 + a)--(1,1,arr[4a+3].y/50 + a)--(1,0,arr[4a+2].y/50 + a)--cycle,orange+opacity(.1));
}
if(i%3==0) {
int a = floor(i/3);
draw( (floor(a/2),a%2,0) -- (floor(a/2),a%2,2+arr[8+a].y/50) , dashed );
}
}
}
};


for(int i=0;i<3;++i) {
label( (string) locale[i],(.5,.5,i) );
}
for(int i=0;i<2;++i) {
label( "Site " + (string) (i+1),
(2.5,i,0)
);
draw( (i,0,0) -- (2i,i-1,0) );
draw( (1,i,0) -- (i+1,2i-1,0) );
label( "Area " + (string) (i+1),
(i,-1.5,0)
);
fill((2,0,i+1)--(3,0,i+1)--(3,0,i+2)--(2,0,i+2)--cycle3,(i==0 ? purple : orange)+opacity(.1));
label( i==0 ? "Temperature (F)" : "Birds", (2.5,0,i+1.5) );
}
</asy>
</asy>
I did everything related to the [[ Mock AIME 3 Pre 2005]]
all in one edit - each solution page, the answers, and the entire aime page.

Latest revision as of 00:21, 15 September 2008

[asy]  unitsize(.5cm); pair bar(pair a) {  return (a.x,-a.y); }; pair A[] = { (6.5,0),(1.5,12) }; pair P[] = { A[0],A[1],-bar(A[1]),-bar(A[0]),(2A[0]-bar(A[0]))/3,(2A[0]+A[1])/3, (5A[0]-4bar(A[0]))/9,(5A[0]+4A[1])/9  }; pair D[] = { (2P[4]+P[5])/3,(P[4]+2P[5])/3 }; draw( D[0]--P[6] ,blue+1mm); draw( D[0]--P[4] ,blue+1mm); draw( P[6]--P[4], black+1mm); pair E[] = {(D[0]+P[6])/2,D[0] + P[6] - P[4]}; dot(E[0]);dot(E[1]); draw(P[6]--E[1],red+1mm); draw(P[4]--E[1],red+1mm); draw(P[4]--P[5]); draw( D[0] -- E[1]); draw(D[1]--P[7]); draw( P[3] -- P[0] -- P[1]) ; for(int i=0;i<10;++i) { if(i<4) {  } else {  dot( (i<8) ? P[i] : D[i-8] ); } };  [/asy]