draw arcs
This commit is contained in:
		
							
								
								
									
										15
									
								
								hyperbolic.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								hyperbolic.c
									
									
									
									
									
								
							@@ -191,7 +191,7 @@ int main()
 | 
				
			|||||||
	gsl_matrix *coxeter_eigenvectors[3];
 | 
						gsl_matrix *coxeter_eigenvectors[3];
 | 
				
			||||||
	gsl_matrix *frame;
 | 
						gsl_matrix *frame;
 | 
				
			||||||
	workspace_t *ws;
 | 
						workspace_t *ws;
 | 
				
			||||||
	int elements = 5000;
 | 
						int elements = 100;
 | 
				
			||||||
	int p = 5, q = 5, r = 5;
 | 
						int p = 5, q = 5, r = 5;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	group = malloc(elements*sizeof(groupelement_t));
 | 
						group = malloc(elements*sizeof(groupelement_t));
 | 
				
			||||||
@@ -229,13 +229,18 @@ int main()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	point coxeter_attracting[3];
 | 
						point coxeter_attracting[3];
 | 
				
			||||||
	point coxeter_repelling[3];
 | 
						point coxeter_repelling[3];
 | 
				
			||||||
 | 
						point coxeter_axes[3];
 | 
				
			||||||
 | 
						point edge_midpoints[3];
 | 
				
			||||||
	point reflection_lines[3];
 | 
						point reflection_lines[3];
 | 
				
			||||||
	point triangle_points[3];
 | 
						point triangle_points[3];
 | 
				
			||||||
	point transformed[3];
 | 
						point transformed[3];
 | 
				
			||||||
	point transformed2[3];
 | 
						point transformed2[3];
 | 
				
			||||||
 | 
						point transformed3[3];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	LOOP(i) coxeter_attracting[i] = column(coxeter_eigenvectors[i], 0);
 | 
						LOOP(i) coxeter_attracting[i] = column(coxeter_eigenvectors[i], 0);
 | 
				
			||||||
	LOOP(i) coxeter_repelling[i] = column(coxeter_eigenvectors[i], 2);
 | 
						LOOP(i) coxeter_repelling[i] = column(coxeter_eigenvectors[i], 2);
 | 
				
			||||||
 | 
						LOOP(i) coxeter_axes[i] = incidence(coxeter_attracting[i], coxeter_repelling[i]);
 | 
				
			||||||
 | 
						LOOP(i) edge_midpoints[i] = incidence(coxeter_axes[(i+1)%3], coxeter_axes[(i+2)%3]);
 | 
				
			||||||
	LOOP(i) reflection_lines[i] = row(cartan, i);
 | 
						LOOP(i) reflection_lines[i] = row(cartan, i);
 | 
				
			||||||
	LOOP(i) triangle_points[i] = incidence(reflection_lines[(i+1)%3], reflection_lines[(i+2)%3]);
 | 
						LOOP(i) triangle_points[i] = incidence(reflection_lines[(i+1)%3], reflection_lines[(i+2)%3]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -252,13 +257,15 @@ int main()
 | 
				
			|||||||
		draw_triangle(transformed, frame, "black,fill=black!10,line width=0pt");
 | 
							draw_triangle(transformed, frame, "black,fill=black!10,line width=0pt");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for(int k = 0; k < elements; k++) {
 | 
						for(int k = 0; k < 10; k++) {
 | 
				
			||||||
		if(group[k].length % 2)
 | 
							if(group[k].length % 2)
 | 
				
			||||||
			continue;
 | 
								continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		LOOP(i) transformed[i] = apply(matrices[k], coxeter_attracting[i]);
 | 
							LOOP(i) transformed[i] = apply(matrices[k], edge_midpoints[(i+2)%3]);
 | 
				
			||||||
		LOOP(i) transformed2[i] = apply(matrices[k], coxeter_repelling[i]);
 | 
							LOOP(i) transformed2[i] = apply(matrices[k], coxeter_repelling[i]);
 | 
				
			||||||
		LOOP(i) draw_line(transformed[i], transformed2[i], frame, "red");
 | 
							LOOP(i) transformed3[i] = apply(matrices[k], coxeter_repelling[(i+1)%3]);
 | 
				
			||||||
 | 
							draw_line(transformed[1], transformed2[1], frame, "red");
 | 
				
			||||||
 | 
							draw_line(transformed[1], transformed3[1], frame, "red");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	print_tex_footer();
 | 
						print_tex_footer();
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user