Yay, CSS Tutorials!

by CoolCarsOnTheRun, Feb 12, 2021, 5:48 PM

Hey everyone! I know I haven't been active on this lately, unfortunately it's been a bit hectic lately with the AMC 10 earlier gah stupid 10b n2 and I'm also building some sites of my own.

However, I'm happy to announce that some tutorials are going back up now! They're not these tutorials (I'll hopefully write another tutorial here sometime in the next month or two, but I need to prepare for the AIME now because I bombed the AMC hard lol), but they're CSS tutorials, which it looks like a lot of people were interested in seeing.

So go and learn some CSS at my new blog here: https://artofproblemsolving.com/community/c1942306_css_tutorials :)

Poll: CSS Tutorials

by CoolCarsOnTheRun, Nov 3, 2020, 7:49 PM

9Poll:
Should I make CSS tutorials if I learn CSS?
53 Votes
94%
(50)
6%
(3)
Hide Results Show Results
You must be signed in to vote.
Hey everyone! I hope you've all been enjoying and learning from this tutorial (sorry for the 1 month spell of inactivity). I recently started coding websites and ended up playing around with blog CSS (you can find that random CSS testing blog here), so I'm actually sort of learning CSS.

The question is: would any of you be interested in learning CSS? I'm not sure whether it's worth spending time on making a tutorial, so I want to see how many of you would think it would be useful :)

Of course, be aware that this isn't a promise that a tutorial will be coming out, right now it's purely hypothetical.

Comment on this post what you think as well :)

Lesson 7: The Olympiad.asy Package

by CoolCarsOnTheRun, Nov 3, 2020, 6:25 PM

Lesson 7
The Olympiad.asy Package

In my opinion, the Olympiad.asy package contains some of the most important functions inside of Asymptote. First, we need to define what a package is.

If you've used pretty much any other coding language, you'll be familiar with what a package is. It's what you'd put in the import line at the top of your Python program, for example. A package is effectively a set of functions that can be used that don't automatically come with Asymptote - if you download Asymptote on your own computer, you'll have to separately download this package as well. AoPS handily comes with the Olympiad.asy package, though, so you don't need to do anything extra to use it on AoPS.

The Olympiad.asy package contains more functions that can be used to find points or paths without actually finding the coordinates of it. I'm just going to write out a list of all of the functions, as that's the easiest way to describe them.

(Incomplete) List of Olympiad.asy Functions
Generic Functions
  • origin returns the pair $(0, 0)$. Example of origin
  • foot(X, A, B) where $A$, $B$, and $X$ are pairs returns the foot of the altitude from $X$ to line $AB$. Example of foot
  • midpoint(A--B) where $A$ and $B$ are pairs returns the midpoint of the segment $AB$. Note the two dashes between $A$ and $B$ instead of a comma. Example of midpoint

Intersections of Paths
  • extension(A, B, C, D) where $A$, $B$, $C$, and $D$ are pairs returns the point of the intersection of the lines $AB$ and $CD$.Example of extension
  • intersectionpoint(A, B) where $A$ and $B$ are paths returns the intersection of the paths $A$ and $B$ (similar to the extension function). NOTE: Unlike the extension function, this will throw an error if the paths do not intersect. Thus, if you're trying to intersect a segment and a circle that don't intersect, you won't get anything - you need to first find a point on that line farther than the other two and use that instead of the first one. NOTE2: If the paths $A$ and $B$ intersect at more than one point, this function will throw an error, and instead you should use the function in the next bullet point. If you're finding the intersection of two lines, it is better to use the first bullet point's function.Example of intersectionpoint
  • intersectionpoints(A, B)[x] where $A$ and $B$ are paths and x is an integer returns the $x+1$th intersection counter-clockwise of the paths $A$ and $B$. NOTE: Unlike the extension function, this will throw an error if the paths do not intersect. Thus, if you're trying to intersect a segment and a circle that don't intersect, you won't get anything - you need to first find a point on that line farther than the other two and use that instead of the first one. NOTE2: If the paths $A$ and $B$ intersect only once, it is better to use the second bullet point's function.
    Example of intersectionpoints

Special Points of a Triangle
  • circumcenter(A, B, C) where $A$, $B$, and $C$ are pairs returns the circumcenter of the triangle $ABC$. Example of circumcenter
  • incenter(A, B, C) where $A$, $B$, and $C$ are pairs returns the incenter of the triangle $ABC$. Example of incenter
  • orthocenter(A, B, C) where $A$, $B$, and $C$ are pairs returns the orthocenter of the triangle $ABC$. Example of orthocenter
  • centroid(A, B, C) where $A$, $B$, and $C$ are pairs returns the centroid of the triangle $ABC$. Example of centroid

Practice Problems
No practice problems for this lesson (as this was more of a functional lesson).
This post has been edited 3 times. Last edited by CoolCarsOnTheRun, Aug 5, 2021, 10:08 PM
Reason: removed an accidental \

Lesson 5: Color and Right Angles

by CoolCarsOnTheRun, Aug 20, 2020, 12:48 AM

Lesson 6
Customization II: Color and Right Angles

This is part two of the customization series.

Sometimes, it's helpful to color a path or point, for example if you're modelling the path of a laser in a polygon, you may want to make the laser red. This lesson will tell you how to do that.

Coloring things. In essence, coloring something is very similar to labelling a point, but even easier. Again, you put an argument after the draw statement, like this:
draw(item, color);

Your color is going to be in words and all lowercase. For example, if you wanted to color a point red, you would do this:
dot((0, 0), red);

This will create this:
[asy]
dot((0, 0), red);
[/asy]
What if you wanted to label the point as well? The arguments must go in a specific order:
draw(label, item, label_direction, color);

For example, to label our dot earlier as point $A$, you would do this:
dot("$A$", (0, 0), S, red);

which gives you this:
[asy]
dot("$A$", (0, 0), S, red);
[/asy]
Notice how it also colors the label, so if you don't want the label to be colored, you must label the point after creating the object.

Marking right angles. Say you wanted to mark the measure of an angle. How would you do this? Asymptote has a package called the CSE5 package that contains a function to do this with (it also has the markangle() function in olympiad.asy, but we'll do that later). We won't cover this package at all because it's quite complex, but if you want to learn about it, you can do so in the AoPS Wiki found here.

However, marking right angles is quite simple. It's done using the rightanglemark() function. Here's the syntax:
draw(rightanglemark(first_vertex, vertex_of_right_angle, second_vertex, size));

This marks the angle $\angle{\text{firstvertex vertexofrightangle secondvertex}}$ with a mark of size "size." The rightanglemark() function creates a path that's the mark, so you need to use the draw() function on it. Example:
[asy]
size(5cm);
pair A = (0, 0), B = (2, 0), C = (0, 2);
draw(A--B);
draw(A--C);
draw(rightanglemark(B, A, C, 4));
[/asy]
The funny thing is, you can actually use this for non-right angles:
[asy]
size(5cm);
pair A = (0, 0), B = (2, 0), C = (1, 1);
draw(A--B);
draw(A--C);
draw(rightanglemark(B, A, C, 4));
[/asy]
Either way, it's handy to know. And that's the end of this lesson!

Practice Problems
1. Draw an equilateral triangle with 3 different colored sides - red, blue, and green. Solution
2. Draw a 45-45-90 right triangle and mark the 90 degree angle with a right angle mark. Solution
This post has been edited 1 time. Last edited by CoolCarsOnTheRun, Oct 30, 2023, 5:13 PM

Lesson 5: Labelling Points

by CoolCarsOnTheRun, Jul 29, 2020, 1:12 AM

Lesson 5
Customization I: Labelling Points

When coding in Asymptote, it's sometimes helpful to label a point or color a path or label. Asymptote has the ability to do either of those things, using special arguments and/or commands inside of a function.

Labeling Pairs and Paths
There are two main ways to label something. The first is to label it while creating the pair/path itself, the other is to label it afterwards.

Labelling while creating. To label a pair or a path while creating the pair/path itself, simply add another argument in front of all of the arguments of the draw function. The syntax looks like this:
draw("label", item);

Notice the quotes around the label - these indicate that the label is a string, a data type containing a sequence of characters.

If you wanted to label a point as $A$, you would do this:
dot("$A$", (0, 0))

Notice that you need dollar signs around the A just as in $\LaTeX$.

This will look like this:
[asy]
dot("$A$", (0, 0));
[/asy]

Notice what happens we draw another line, as follows:
[asy]
dot("$A$", (0, 0));
draw((0, 0)--(1, 0));
[/asy]
The line can go straight through the label. To fix this, add another argument. This argument will tell Asymptote where to draw the label relative to your new point.
draw("label", item, direction);

To specify the direction of the label, use the
dir()
function. In the following example, we will use
dir(180)
to make the label appear directly left of the point.
[asy]
dot("$A$", (0, 0), W);
draw((0, 0)--(1, 0));
[/asy]

Labelling afterwards. This is very similar to labelling while creating. SImply use the label command after creating the object:
draw(item);
label("label", item, direction);

Practice Problems
1. Label the point (0, 0) as point $A$ upwards directly while drawing. Solution
2. Label the point (0, 0) as point $A$ to the right and down after drawing. Solution
This post has been edited 3 times. Last edited by CoolCarsOnTheRun, May 22, 2022, 8:20 PM

Lesson 4: The dir() Function

by CoolCarsOnTheRun, Jul 29, 2020, 12:41 AM

Lesson 4
The dir() Function

This lesson will cover the dir() function, which, due to it's immense importance, will get a lesson of it's own. It will be slightly shorter due to the fact a) the function really isn't that hard, and b) most of the advanced commands are in the olympiad.asy package which is coming in a later lesson.

The dir() Function. The dir() function is a very useful function that allows you to draw points using angles rather than coordinates. If you know what polar coordinates are, the dir() function runs off of them, effectively. If you look at this diagram, you'll see a preview of how it works:
[asy]
size(8cm);
draw((-2, 0)--(2, 0));
draw((0, -2)--(0, 2));
draw(circle((0, 0), 1));
int[] directions = {30, 45, 110, 137, 203, 250, 290, 340};
for (int i = 0; i < directions.length; ++i) {
    dot("dir($" + string(directions[i]) + "$)", dir(directions[i]), dir(directions[i]));
}
[/asy]
The dir() function creates a point that is of a certain angle counterclockwise from the point (1, 0) of distance 1 from the origin. The syntax is as follows:
dir(direction);

where the direction is measured in degrees. For example,
// the lines draw the axis, so they don't affect the dir
// ignore the lines with the backslashes, they're called comments and we'll get to them later
draw((-2, 0)--(2, 0));
draw((0, -2)--(0, 2));
dot(dir(50));

creates
[asy]
draw((-2, 0)--(2, 0));
draw((0, -2)--(0, 2));
dot(dir(50));
[/asy]
As you can see, the dot created is 50 degrees counterclockwise of the x-axis. This is particularly useful when creating triangles with certain angle measures, such as 30-60-90s (which we'll leave as an exercise for a later lesson :)).

Note: you're also able to put negative angle measures in the argument of the dir() function, which will measure the angle clockwise rather than counterclockwise.

The dir() function comes as a pair, so when creating a variable, you'd want to do this:
pair variableName = dir(direction);


If you want the length of your function to be longer or shorter than just 1 unit, you can multiply your dir() function by a number, such as this:
pair point = sqrt(2)*dir(50);


Practice Problems
Problem 1: Draw a dot that is 37 degrees counterclockwise from the origin. Solution
This post has been edited 5 times. Last edited by CoolCarsOnTheRun, Nov 5, 2020, 4:52 AM

Lesson 3: Creating and Using Variables

by CoolCarsOnTheRun, Jul 29, 2020, 12:04 AM

Lesson 3
Creating and Using Variables

In Asymptote, it's quite handy to name variables, whether it's for a value, for a point, or for a path. This is useful because you may need to use a point many times - with variables, instead of needing to type the coordinates every single time, you can just create a variable once and use the variable instead.

Next, we need to learn how to create a variable. The syntax is simple:
variableType variableName = variableValue;

I'm going to break this up into three parts: the variable type, name, and value.

If you've learned Java or something similar to it, you'll know what the variable type is. When creating a variable, Asymptote needs to know what kind of variable you're creating - for example, the four main types I'm going to be going over in this tutorial are ints, reals, pairs, and paths. We'll get to that soon.

The variable name is the name of the variable you're creating. This is effectively it's identifier - just as we identify each other by our names, Asymptote identifies variables by their names. NAMES CAN BE ANYTHING, BUT CANNOT CONTAIN SPACES.

The variable value is what is being stored inside that value, which you retrieve by referring to its name. We'll get to that soon.

Creating Variables
Ints. Other languages such as Java also have this data type. It's name is quite self-explanatory, the int stands for integer - in this kind of data type, you can store any integer you want, such as 5, -2, or 18430. To create an int, all you need to do is type this:
int variableName = integerValue;

The variableName is what you want to call this variable - try to call it something that makes sense. For example, if it's the x-coordinate of a point, you may want to call it x_coor.

Reals. If you want to create a variable that stores a real number but isn't an integer, use the real type. Just like ints, the syntax is as follows:
real variableName = numberValue;

If you know Python, reals are somewhat similar to floats in a sense. It can contain numbers such as 5, 5.5, or 3.141592 (note that you can store an int inside of a real).

Pairs. A pair is a data type that stores a coordinate pair. This is the data type that I use the most frequently in Asymptote, as Asymptote uses a coordinate system to tell where you want to draw. The syntax is as follows:
pair variableName = (xCoord, yCoord);

Note that you must use parenthesis around your variable value, or Asymptote will error.

Paths. A path is a drawing, such as a line or circle. This variable type is more open-ended, but the basic syntax is like this:
path variableName = variableValue;

For example, to create a variable containing a circle, you would do
path circle = circle((center_x, center_y), radius);

And to create a line,
path line = (x_1, y_1) -- (x_2, y_2);

Additionally, if you want to create multiple variables of the same type in a row, you can do this:
variableType name1 = value1, name2 = value2, name3 = value3;

where name1, name2, and name3 are the names of the variables and value1, value2, and value3 are the values of the variables respectively (you can create more or less than just 3 variables in one line).

Using Created Variables
To use a created variable, all you need to do is put the variable name wherever you want its value to be used. For example, you could do this:
pair center = (0, 0);
int radius = 5;
path circle = circle(center, radius);
draw(circle);
dot(center);

which would give you this
Notice how I use a variable inside the creation of another variable.

Practice Problems
Problem 1: Create a variable of type int with name radius and value 5, and draw a dot using that variable at (radius, radius). Solution
Problem 2: Create 2 pairs in one line: one with coordinates (1, 2) and the other with coordinates (3, 1). Draw a line between those two points with the variables. Solution
Problem 3: Create a variable of type path that contains a circle with center (4, 1) and radius 2. Draw that circle. Solution
This post has been edited 2 times. Last edited by CoolCarsOnTheRun, Nov 5, 2020, 4:51 AM

Lesson 2: Basic Syntax

by CoolCarsOnTheRun, Jun 17, 2020, 11:52 PM

Lesson 2
Basic Syntax

In this lesson, we'll introduce the basics to drawing, including points, lines, and circles. However, before we do the drawing, we have to learn some universal syntax expectations that Asymptote will throw an error if not done correctly.
  1. All lines you write must end with a semicolon, or a ;. If not included at the end of a single line, your program will not run and will fail to generate the diagram you are trying to create.
  2. If you haven't ever learned another coding language, you need to be careful that your parenthesis match up. If you are missing an opening or closing parenthesis, the code will not run.

Alright, let's get into the drawing. :)

Drawing Points. A point is probably the most basic command in Asymptote, and yet it is quite important. Here is the syntax:
dot((x-coordinate, y-coordinate));

Note a couple things. Firstly, the line ends with a semicolon, which all Asymptote must. Second, there are 2 pairs of parenthesis. Why? you may ask. This is because there are two layers. The first pair of parenthesis, or the bolded ones: dot((x, y)); are there because this is a function. You'll be familiar with a function if you have used any other coding language, but if you haven't, all you need to know is that the functions are the stuff that draws stuff in Asymptote.

With this function, you'll see that inside of the parenthesis is the argument, or the input. Without this input, the function won't be able to run - in the case of drawing points, it needs the coordinates of where you want to draw the points. Otherwise, the program won't know where the point should be drawn. This is the second pair of parenthesis - they are part of the input, or the coordinates. Whenever you write down a coordinate pair, you need parenthesis around them (for example (0, 0), or the origin), and Asymptote is no different.

There are more optional arguments for this function, but that's for a later lesson.

This diagram, when run, should look like this.

Drawing Lines. Lines are quite similar to points: they have a function, and inside that function they have one single argument. Well, technically Asymptote doesn't draw lines. They draw line segments, as the lines are not infinite and have endpoints. The syntax is as follows:
draw((x-coor-1, y-coor-1)--(x-coor-2, y-coor-2));

Instead of the function dot, we use the function draw. This time, we also have two points: the two endpoints of the line, and 2 horizontal dashes separating the points.

When draw, the diagram looks like this. I just picked two random endpoints for my line, your line's direction/length will probably be different.

Drawing Circles. Circles, like lines, use the draw function. However, unlike lines, you need to specify as an argument that you are drawing a circle. The syntax is like this:
draw(circle((center-x, center-y), radius));

Here, you have 1 single argument: the circle. However, as we'll learn later the circle is something called a path, which, like a point, is a type of object. Therefore, you can put this circle inside of the draw by itself.

However, inside of the circle, you still need to specify the center and radius, as without it, Asymptote will not know how to draw the circle.

Once drawn, the diagram should look like this. Again, my circle was chosen randomly, so your circle may look different.

That's it for this lesson! There are a couple problems this week, so if you find yourself needing extra practice, you can do them :).

Practice Problems
Problem 1: Draw a point at the coordinates (1, 2). Solution
Problem 2: Draw a line with endpoints (4, 5) and (8, 2). Solution
Problem 3: Draw a circle with center (-3, 2) and radius 4. Solution
This post has been edited 3 times. Last edited by CoolCarsOnTheRun, Jul 29, 2020, 12:46 AM

Lesson 1: Introduction

by CoolCarsOnTheRun, Jun 17, 2020, 11:51 PM

Lesson 1
Introduction

Before we get into the complicated stuff, we first need to learn how to embed Asymptote into an AoPS post. It's quite simple. If you know a bit of $\LaTeX$, you'll know that you do this on AoPS posts to use $\LaTeX$ in posts:
$[code goes here]$

In Asymptote, instead of the dollar signs used in LaTeX, we use a bbcode tag just like the bold tag (we do
[b]text goes here[/b]
to bold stuff in bbcode): your code will go into asy tags, like this:
[asy]
code goes here
[/asy]

So that's how you embed Asymptote code into a post. Next!

Asymptote draws using the Cartesian Coordinate System. If you've taken a relatively simple geometry class, you'll know what this is: essentially there are two perpendicular axis with the origin in the middle, and every step you take in the right/left direction you increment the $x$ value by $1$, and every step you take in the up/down direction you increment the $y$ direction by $1$.

To draw, you'll need to know the coordinates of the basic points. As you get better at Asymptote, you'll learn more techniques such as dir and intersection and extension, but as of now, we'll stick to the points that require the knowledge of all coordinates.

One more thing: As you learn Asymptote and even get very good at it, at some point you'll see a function that you've never learned or saw before. AoPS has this handy thing where, just like with LaTeX, when you click on the code, a new window pops up that shows you the diagram, and below that, all of the code that it took to write it. Doing that is incredibly useful, as it can show you functions that can be very handy and you've never seen before.

So that's the introduction and the end of this lesson. Next lesson, we'll get into the drawing. :)

Practice Problems:
None this lesson :)

Asymptote: the Vector Graphics Language

by CoolCarsOnTheRun, Jun 17, 2020, 11:51 PM

Asymptote
The Vector Graphics Language

[asy]
size(7 cm);

path circleOne = circle((0, 0), 1);
pair A = (1, sqrt(3)), C = (1, -sqrt(3)), B = midpoint(A--C), D = midpoint(A--B), F = dir(258);
path AF = A--F;
pair E = intersectionpoint(circleOne, AF);
pair x = midpoint(E--D), y = midpoint(F--C), M = midpoint(D--C);

draw(AF);

draw(circleOne);
draw(circle((0, 0), 2));
dot((0, 0));

draw(A -- C);
draw(AF);
draw(E--D);
draw(F--C);
draw(x--M);
draw(y--M);

dot("$A$", A, NE);
dot("$B$", B);
dot("$C$", C, SE);
dot("$D$", D);
dot("$E$", E, SW);
dot("$F$", F, S);
dot("$M$", M);

draw(rightanglemark(M, x, D , 3));
draw(rightanglemark(M, y, C , 3));
[/asy]
Caption: Diagram for USAMO 1998 Problem #2. Coded by CoolCarsOnTheRun.

How do I make graphs like this?, you may ask. The answer: Asymptote, a vector graphics language that allows you to draw neat geometry diagrams in your proof. AoPS handily allows Asymptote to be embedded inside of posts just like $\LaTeX$, so you can try out programs right here on AoPS :).

This blog is going to be a blog where I post lessons for beginners. If you don't know a single thing about Asymptote, that's OK! I'm going to be starting with the basics.

Additionally, at the end of every lesson, there are going to be a couple practice problems with the solutions. If you find yourself needing more practice, you can just try out those problems. Also, don't be afraid to ask for help in the shoutbox!

Let's get started!
This post has been edited 4 times. Last edited by CoolCarsOnTheRun, Nov 8, 2020, 10:29 PM

Some random Asymptote tutorials. I'm not the best at Asymptote, so this is really only for beginners :).

avatar

CoolCarsOnTheRun
Shouts
Submit
  • very good

    by MightySpider, Mar 27, 2025, 8:58 PM

  • Hello everyone!!! :)

    by Meabh, Aug 12, 2021, 9:47 PM

  • @4below ok if u said ur not pr0 then its understandable. But u said no u. Interesting…
    ~the real aops n00b

    by mathlearner2357, Mar 24, 2021, 6:03 PM

  • pr0 blog so helpful
    make more tutorials pls

    by RP3.1415, Mar 24, 2021, 12:07 AM

  • Thank you for providing these tutorials! You are amazing!

    by lamphead, Mar 23, 2021, 11:53 PM

  • ngl, ccotr is one of the most pr0 person on aops

    by mathlearner2357, Mar 23, 2021, 5:59 AM

  • Hi! Very useful blog.

    by Eat314, Feb 14, 2021, 3:11 AM

  • This guy is the biggest pr0 in CSS

    by HIA2020, Feb 12, 2021, 12:24 AM

  • nice username

    by v4913, Jan 7, 2021, 2:19 AM

  • wow nice lessons

    by HelloWorld21, Jan 3, 2021, 6:29 PM

  • [asy]
int n = 100;

for (int i = 0; i <= n; ++i)
{
draw((1,2)--(i,n));
}
[/asy]

    by rirobaki, Dec 1, 2020, 4:36 PM

  • This is a really useful blog!

    by IntelligentElephant2010, Nov 28, 2020, 9:24 PM

  • Nice lessons! Here is a test:

    [asy]
int n = 100;

for (int i = 0; i <= n; ++i)
{
draw((1,2)--(i,n));
}
[/asy]

    by player01, Nov 16, 2020, 2:25 AM

  • Beautiful!

    by mathical8, Oct 23, 2020, 8:01 PM

  • OMG. Thanks soo much!

    by csong, Oct 17, 2020, 5:30 PM

  • Ooh. Shiny

    [asy]
draw(circle((4, 3), 9));
[/asy]

    by pith0n, Oct 6, 2020, 10:41 PM

  • Hello! Nice tutorial. :)

    by Niqhtwolf, Sep 4, 2020, 3:30 PM

  • shoutie shout :D

    by asianpear, Sep 3, 2020, 12:15 AM

  • np! ill work on the next few tmrw

    by CoolCarsOnTheRun, Aug 19, 2020, 1:11 AM

  • this is so helpful tysm :)

    by simonicorn, Aug 19, 2020, 12:32 AM

  • wow this is helpful (originally I didn't know how to do asymptote without coordinates)

    by floof421, Aug 12, 2020, 12:32 AM

  • NICE BLOG

    by Heavytoothpaste, Jul 29, 2020, 9:00 PM

  • Alright, Lesson 3 is up!

    by CoolCarsOnTheRun, Jul 29, 2020, 12:09 AM

  • Do you have any css tutorials?

    by 432411, Jul 9, 2020, 1:13 AM

  • very helpful!
    more plz!
    i need the basics
    [asy]draw(polygon(8));[/asy]
    I know some ;)

    by ARay10, Jun 30, 2020, 9:54 PM

  • yeah, you're much more pr0 than me at asymptote xD

    my blog is more for new ppl at asymptote

    welp I haven't made a post in ages so time to do one now

    by CoolCarsOnTheRun, Jun 22, 2020, 11:31 PM

  • I am also making an asymptote tutorial blog! It is more advanced, though. :)

    by sonone, Jun 22, 2020, 9:24 PM

  • yw!!! They're not even close to being done yet, I still have to do lessons on dir, the olympiad.asy package, etc etc.

    :)

    by CoolCarsOnTheRun, Jun 18, 2020, 3:50 PM

  • nice blog! i already new some asymptote but the tutorials taught me more! thanks for the tutorials :)

    by smartatmath, Jun 18, 2020, 3:33 AM

  • Actually, I just realized that they're still active! Their last post was in May. Wow, I didn't realize that :o

    by CoolCarsOnTheRun, Jun 18, 2020, 12:00 AM

  • Wow, thanks! I really appreciate it :)

    by Ilikeapos, Jun 17, 2020, 11:59 PM

  • HFDKSFHDSK how did you find this blog already lol

    thanks xD

    also once ur more advanced (im not even there yet LOL) klaus-anton's blog is way more advanced (they're not posting there anymore I don't think but whatever)

    just search them up on google lol

    by CoolCarsOnTheRun, Jun 17, 2020, 11:58 PM

  • Thank you! I've been wanting to learn this for a long time and it really helps :) you have a subscriber :D

    by Ilikeapos, Jun 17, 2020, 11:56 PM

33 shouts
Tags
About Owner
  • Posts: 2846
  • Joined: Jun 22, 2014
Blog Stats
  • Blog created: Jun 17, 2020
  • Total entries: 10
  • Total visits: 1364
  • Total comments: 7
Search Blog
a