%%%% stlltn03.ldf %%%% Created by Laurence D. Finston (LDF) 2010-12-17 20:10:15 +0100 %%%% $Id: stlltn03.ldf,v 1.12 2022/12/16 14:05:14 lfinsto1 Exp $ %% * (1) Copyright and License. %%%% This file is part of GNU 3DLDF, a package for three-dimensional drawing. %%%% Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 The Free Software Foundation, Inc. %%%% GNU 3DLDF is free software; you can redistribute it and/or modify %%%% it under the terms of the GNU General Public License as published by %%%% the Free Software Foundation; either version 3 of the License, or %%%% (at your option) any later version. %%%% GNU 3DLDF is distributed in the hope that it will be useful, %%%% but WITHOUT ANY WARRANTY; without even the implied warranty of %%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %%%% GNU General Public License for more details. %%%% You should have received a copy of the GNU General Public License %%%% along with GNU 3DLDF; if not, write to the Free Software %%%% Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA %%%% GNU 3DLDF is a GNU package. %%%% It is part of the GNU Project of the %%%% Free Software Foundation %%%% and is published under the GNU General Public License. %%%% See the website http://www.gnu.org %%%% for more information. %%%% GNU 3DLDF is available for downloading from %%%% http://www.gnu.org/software/3dldf/LDF.html. %%%% Please send bug reports to Laurence.Finston@gmx.de %%%% The mailing list help-3dldf@gnu.org is available for people to %%%% ask other users for help. %%%% The mailing list info-3dldf@gnu.org is for sending %%%% announcements to users. To subscribe to these mailing lists, send an %%%% email with ``subscribe '' as the subject. %%%% The author can be contacted at: %%%% Laurence D. Finston %%%% c/o Free Software Foundation, Inc. %%%% 51 Franklin St, Fifth Floor %%%% Boston, MA 02110-1301 %%%% USA %%%% Laurence.Finston@gmx.de %%%% Created: December 17, 2010 %%%% Last updated: December 29, 2010 %% * (1) Beginning of 3DLDF code. %% ** (2) Stellation pattern 3 input "stlltns.lmc"; %% ** (2) Declarations numeric inner_t_len, inner_t_wid, seg, betw_t_len, betw_t_wid, outer_len_scale_val, outer_wid_scale_val, betw_len_scale_val, betw_wid_scale_val; picture main_pict; picture aux_pict; boolean do_betw_quads; pickup pencircle scaled (.5mm, .5mm, .5mm); %% ** (2) Figure 1 beginfig(1); inner_t_len := 0.5; %% inner_triangle_length inner_t_wid := 0.25; %% inner_triangle_width seg := 8; %% The number of segments outer_len_scale_val := 4; outer_wid_scale_val := 3; betw_len_scale_val := 3; betw_wid_scale_val := 1.5; betw_distance_val := 0.675; do_betw_quads := false; % true generate_pattern (main_pict, aux_pict) {inner_t_len, inner_t_wid, seg, outer_len_scale_val, outer_wid_scale_val, betw_len_scale_val, betw_wid_scale_val, betw_distance_val, do_betw_quads}; current_picture += aux_pict; current_picture += main_pict; endfig with_projection parallel_x_z no_sort; %% ** (2) Figure 2 beginfig(2); clear aux_pict; clear main_pict; inner_t_len := 0.5; %% inner_triangle_length inner_t_wid := 0.25; %% inner_triangle_width seg := 8; %% The number of segments outer_len_scale_val := 4; outer_wid_scale_val := 3; betw_len_scale_val := 3; betw_wid_scale_val := 1.5; betw_distance_val := 0.675; do_betw_quads := true; % false generate_pattern (main_pict, aux_pict) {inner_t_len, inner_t_wid, seg, outer_len_scale_val, outer_wid_scale_val, betw_len_scale_val, betw_wid_scale_val, betw_distance_val, do_betw_quads}; current_picture += aux_pict; current_picture += main_pict; endfig with_projection parallel_x_z no_sort; %% ** (2) Figure 3 beginfig(3); clear aux_pict; clear main_pict; inner_t_len := 0.5; %% inner_triangle_length inner_t_wid := 0.25; %% inner_triangle_width seg := 10; %% The number of segments outer_len_scale_val := 4; outer_wid_scale_val := 2; betw_len_scale_val := 3; betw_wid_scale_val := 1.5; betw_distance_val := 0.675; do_betw_quads := false; % true generate_pattern (main_pict, aux_pict) {inner_t_len, inner_t_wid, seg, outer_len_scale_val, outer_wid_scale_val, betw_len_scale_val, betw_wid_scale_val, betw_distance_val, do_betw_quads}; current_picture += aux_pict; current_picture += main_pict; endfig with_projection parallel_x_z no_sort; %% ** (2) Figure 4 beginfig(4); clear aux_pict; clear main_pict; inner_t_len := 0.5; %% inner_triangle_length inner_t_wid := 0.25; %% inner_triangle_width seg := 10; %% The number of segments outer_len_scale_val := 4; outer_wid_scale_val := 2; betw_len_scale_val := 3; betw_wid_scale_val := 1.5; betw_distance_val := 0.675; do_betw_quads := true; % false generate_pattern (main_pict, aux_pict) {inner_t_len, inner_t_wid, seg, outer_len_scale_val, outer_wid_scale_val, betw_len_scale_val, betw_wid_scale_val, betw_distance_val, do_betw_quads}; current_picture += aux_pict; current_picture += main_pict; endfig with_projection parallel_x_z no_sort; %% *** (3) %% ** (2) Figure 5 beginfig(5); path frame; numeric frame_value; frame_value := 6.5cm; frame := (-frame_value, 0, -frame_value) -- (frame_value, 0, -frame_value) -- (frame_value, 0, frame_value) -- (-frame_value, 0, frame_value) -- cycle; draw frame with_color white; current_picture += aux_pict; current_picture += main_pict; endfig with_projection parallel_x_z no_sort; %% *** (3) verbatim_metapost "end"; end; %% ** (2) End of 3DLDF code %% * (1) Emacs-Lisp code for use in indirect buffers when using the %% GNU Emacs editor. The local variable list is not evaluated when an %% indirect buffer is visited, so it's necessary to evaluate the %% following s-expression in order to use the facilities normally %% accessed via the local variables list. %% \initials{LDF 2004.02.12}. %% (progn (metafont-mode) (outline-minor-mode t) (setq fill-column 80) (ignore '( %% )) (setq outline-regexp "%% [*\f]+")) %% * (1) Local variables for Emacs. %% Local Variables: %% mode:Metafont %% eval:(outline-minor-mode t) %% abbrev-mode:t %% eval:(read-abbrev-file "~/.abbrev_defs") %% outline-regexp:"%% [*\f]+" %% End: