% (c) Paul Jungwirth 2006 % You are free to use this file, but please do not modify it. \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{bezcirc}[2006/04/14 For drawing circles] \RequirePackage{ifthen} \RequirePackage{fp} \RequirePackage{bez123} % USAGE: \bezcircle[tblr]{x-center}{y-center}{radius} % based on http://www.princeton.edu/~graff/files/bezhowto.html % The optional argument stands for "top,bottom,left,right." % Use this to get only a quarter or half of a circle. \DeclareRobustCommand*{\bezcircle}[4][tblr]{ \FPmul{\BCk}{0.5522847498}{#4} \FPadd{\BCxpr}{#2}{#4} \FPadd{\BCxpk}{#2}{\BCk} \FPsub{\BCxmr}{#2}{#4} \FPsub{\BCxmk}{#2}{\BCk} \FPadd{\BCypr}{#3}{#4} \FPadd{\BCypk}{#3}{\BCk} \FPsub{\BCymr}{#3}{#4} \FPsub{\BCymk}{#3}{\BCk} \ifthenelse{\equal{#1}{tblr}}{ \cbezier(\BCxmr,#3)(\BCxmr,\BCypk)(\BCxmk,\BCypr)(#2,\BCypr) \cbezier(#2,\BCypr)(\BCxpk,\BCypr)(\BCxpr,\BCypk)(\BCxpr,#3) \cbezier(\BCxpr,#3)(\BCxpr,\BCymk)(\BCxpk,\BCymr)(#2,\BCymr) \cbezier(#2,\BCymr)(\BCxmk,\BCymr)(\BCxmr,\BCymk)(\BCxmr,#3) }{ \ifthenelse{\equal{#1}{t}\or\equal{#1}{tl}\or\equal{#1}{l}}{ % NW \cbezier(\BCxmr,#3)(\BCxmr,\BCypk)(\BCxmk,\BCypr)(#2,\BCypr) }{} \ifthenelse{\equal{#1}{t}\or\equal{#1}{tr}\or\equal{#1}{r}}{ % NE \cbezier(#2,\BCypr)(\BCxpk,\BCypr)(\BCxpr,\BCypk)(\BCxpr,#3) }{} \ifthenelse{\equal{#1}{b}\or\equal{#1}{bl}\or\equal{#1}{l}}{ % SW \cbezier(#2,\BCymr)(\BCxmk,\BCymr)(\BCxmr,\BCymk)(\BCxmr,#3) }{} \ifthenelse{\equal{#1}{b}\or\equal{#1}{br}\or\equal{#1}{r}}{ % SE \cbezier(\BCxpr,#3)(\BCxpr,\BCymk)(\BCxpk,\BCymr)(#2,\BCymr) }{} }}