Advertisement
Guest User

Untitled

a guest
Dec 10th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 42.81 KB | None | 0 0
  1. %% bare_adv.tex
  2. %% V1.4b
  3. %% 2015/08/26
  4. %% by Michael Shell
  5. %% See:
  6. %% http://www.michaelshell.org/
  7. %% for current contact information.
  8. %%
  9. %% This is a skeleton file demonstrating the advanced use of IEEEtran.cls
  10. %% (requires IEEEtran.cls version 1.8b or later) with an IEEE Computer
  11. %% Society journal paper.
  12. %%
  13. %% Support sites:
  14. %% http://www.michaelshell.org/tex/ieeetran/
  15. %% http://www.ctan.org/pkg/ieeetran
  16. %% and
  17. %% http://www.ieee.org/
  18.  
  19. %%*************************************************************************
  20. %% Legal Notice:
  21. %% This code is offered as-is without any warranty either expressed or
  22. %% implied; without even the implied warranty of MERCHANTABILITY or
  23. %% FITNESS FOR A PARTICULAR PURPOSE!
  24. %% User assumes all risk.
  25. %% In no event shall the IEEE or any contributor to this code be liable for
  26. %% any damages or losses, including, but not limited to, incidental,
  27. %% consequential, or any other damages, resulting from the use or misuse
  28. %% of any information contained here.
  29. %%
  30. %% All comments are the opinions of their respective authors and are not
  31. %% necessarily endorsed by the IEEE.
  32. %%
  33. %% This work is distributed under the LaTeX Project Public License (LPPL)
  34. %% ( http://www.latex-project.org/ ) version 1.3, and may be freely used,
  35. %% distributed and modified. A copy of the LPPL, version 1.3, is included
  36. %% in the base LaTeX documentation of all distributions of LaTeX released
  37. %% 2003/12/01 or later.
  38. %% Retain all contribution notices and credits.
  39. %% ** Modified files should be clearly indicated as such, including **
  40. %% ** renaming them and changing author support contact information. **
  41. %%*************************************************************************
  42.  
  43.  
  44. % *** Authors should verify (and, if needed, correct) their LaTeX system ***
  45. % *** with the testflow diagnostic prior to trusting their LaTeX platform ***
  46. % *** with production work. The IEEE's font choices and paper sizes can ***
  47. % *** trigger bugs that do not appear when using other class files. *** ***
  48. % The testflow support page is at:
  49. % http://www.michaelshell.org/tex/testflow/
  50.  
  51.  
  52. % IEEEtran V1.7 and later provides for these CLASSINPUT macros to allow the
  53. % user to reprogram some IEEEtran.cls defaults if needed. These settings
  54. % override the internal defaults of IEEEtran.cls regardless of which class
  55. % options are used. Do not use these unless you have good reason to do so as
  56. % they can result in nonIEEE compliant documents. User beware. ;)
  57. %
  58. %\newcommand{\CLASSINPUTbaselinestretch}{1.0} % baselinestretch
  59. %\newcommand{\CLASSINPUTinnersidemargin}{1in} % inner side margin
  60. %\newcommand{\CLASSINPUToutersidemargin}{1in} % outer side margin
  61. %\newcommand{\CLASSINPUTtoptextmargin}{1in} % top text margin
  62. %\newcommand{\CLASSINPUTbottomtextmargin}{1in}% bottom text margin
  63.  
  64.  
  65.  
  66.  
  67. %
  68. \documentclass[10pt,journal,compsoc]{IEEEtran}
  69. % If IEEEtran.cls has not been installed into the LaTeX system files,
  70. % manually specify the path to it like:
  71. % \documentclass[10pt,journal,compsoc]{../sty/IEEEtran}
  72.  
  73.  
  74. % For Computer Society journals, IEEEtran defaults to the use of
  75. % Palatino/Palladio as is done in IEEE Computer Society journals.
  76. % To go back to Times Roman, you can use this code:
  77. %\renewcommand{\rmdefault}{ptm}\selectfont
  78.  
  79.  
  80.  
  81.  
  82.  
  83. % Some very useful LaTeX packages include:
  84. % (uncomment the ones you want to load)
  85.  
  86.  
  87.  
  88. % *** MISC UTILITY PACKAGES ***
  89. %
  90. %\usepackage{ifpdf}
  91. % Heiko Oberdiek's ifpdf.sty is very useful if you need conditional
  92. % compilation based on whether the output is pdf or dvi.
  93. % usage:
  94. % \ifpdf
  95. % % pdf code
  96. % \else
  97. % % dvi code
  98. % \fi
  99. % The latest version of ifpdf.sty can be obtained from:
  100. % http://www.ctan.org/pkg/ifpdf
  101. % Also, note that IEEEtran.cls V1.7 and later provides a builtin
  102. % \ifCLASSINFOpdf conditional that works the same way.
  103. % When switching from latex to pdflatex and vice-versa, the compiler may
  104. % have to be run twice to clear warning/error messages.
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111. % *** CITATION PACKAGES ***
  112. %
  113. \ifCLASSOPTIONcompsoc
  114. % The IEEE Computer Society needs nocompress option
  115. % requires cite.sty v4.0 or later (November 2003)
  116. \usepackage[nocompress]{cite}
  117. \else
  118. % normal IEEE
  119. \usepackage{cite}
  120. \fi
  121. % cite.sty was written by Donald Arseneau
  122. % V1.6 and later of IEEEtran pre-defines the format of the cite.sty package
  123. % \cite{} output to follow that of the IEEE. Loading the cite package will
  124. % result in citation numbers being automatically sorted and properly
  125. % "compressed/ranged". e.g., [1], [9], [2], [7], [5], [6] without using
  126. % cite.sty will become [1], [2], [5]--[7], [9] using cite.sty. cite.sty's
  127. % \cite will automatically add leading space, if needed. Use cite.sty's
  128. % noadjust option (cite.sty V3.8 and later) if you want to turn this off
  129. % such as if a citation ever needs to be enclosed in parenthesis.
  130. % cite.sty is already installed on most LaTeX systems. Be sure and use
  131. % version 5.0 (2009-03-20) and later if using hyperref.sty.
  132. % The latest version can be obtained at:
  133. % http://www.ctan.org/pkg/cite
  134. % The documentation is contained in the cite.sty file itself.
  135. %
  136. % Note that some packages require special options to format as the Computer
  137. % Society requires. In particular, Computer Society papers do not use
  138. % compressed citation ranges as is done in typical IEEE papers
  139. % (e.g., [1]-[4]). Instead, they list every citation separately in order
  140. % (e.g., [1], [2], [3], [4]). To get the latter we need to load the cite
  141. % package with the nocompress option which is supported by cite.sty v4.0
  142. % and later.
  143.  
  144. \usepackage[backend=biber]{biblatex}
  145. \addbibresource{references.bib}
  146.  
  147.  
  148.  
  149. % *** GRAPHICS RELATED PACKAGES ***
  150. %
  151. \ifCLASSINFOpdf
  152. \usepackage[pdftex]{graphicx}
  153. \usepackage{float}
  154.  
  155. % declare the path(s) where your graphic files are
  156. % \graphicspath{{../pdf/}{../jpeg/}}
  157. % and their extensions so you won't have to specify these with
  158. % every instance of \includegraphics
  159. % \DeclareGraphicsExtensions{.pdf,.jpeg,.png}
  160. \else
  161. % or other class option (dvipsone, dvipdf, if not using dvips). graphicx
  162. % will default to the driver specified in the system graphics.cfg if no
  163. % driver is specified.
  164. % \usepackage[dvips]{graphicx}
  165. % declare the path(s) where your graphic files are
  166. % \graphicspath{{../eps/}}
  167. % and their extensions so you won't have to specify these with
  168. % every instance of \includegraphics
  169. % \DeclareGraphicsExtensions{.eps}
  170. \fi
  171. % graphicx was written by David Carlisle and Sebastian Rahtz. It is
  172. % required if you want graphics, photos, etc. graphicx.sty is already
  173. % installed on most LaTeX systems. The latest version and documentation
  174. % can be obtained at:
  175. % http://www.ctan.org/pkg/graphicx
  176. % Another good source of documentation is "Using Imported Graphics in
  177. % LaTeX2e" by Keith Reckdahl which can be found at:
  178. % http://www.ctan.org/pkg/epslatex
  179. %
  180. % latex, and pdflatex in dvi mode, support graphics in encapsulated
  181. % postscript (.eps) format. pdflatex in pdf mode supports graphics
  182. % in .pdf, .jpeg, .png and .mps (metapost) formats. Users should ensure
  183. % that all non-photo figures use a vector format (.eps, .pdf, .mps) and
  184. % not a bitmapped formats (.jpeg, .png). The IEEE frowns on bitmapped formats
  185. % which can result in "jaggedy"/blurry rendering of lines and letters as
  186. % well as large increases in file sizes.
  187. %
  188. % You can find documentation about the pdfTeX application at:
  189. % http://www.tug.org/applications/pdftex
  190.  
  191.  
  192.  
  193.  
  194.  
  195. % *** MATH PACKAGES ***
  196. %
  197. %\usepackage{amsmath}
  198. % A popular package from the American Mathematical Society that provides
  199. % many useful and powerful commands for dealing with mathematics.
  200. %
  201. % Note that the amsmath package sets \interdisplaylinepenalty to 10000
  202. % thus preventing page breaks from occurring within multiline equations. Use:
  203. %\interdisplaylinepenalty=2500
  204. % after loading amsmath to restore such page breaks as IEEEtran.cls normally
  205. % does. amsmath.sty is already installed on most LaTeX systems. The latest
  206. % version and documentation can be obtained at:
  207. % http://www.ctan.org/pkg/amsmath
  208.  
  209.  
  210.  
  211.  
  212.  
  213. % *** SPECIALIZED LIST PACKAGES ***
  214. %\usepackage{acronym}
  215. % acronym.sty was written by Tobias Oetiker. This package provides tools for
  216. % managing documents with large numbers of acronyms. (You don't *have* to
  217. % use this package - unless you have a lot of acronyms, you may feel that
  218. % such package management of them is bit of an overkill.)
  219. % Do note that the acronym environment (which lists acronyms) will have a
  220. % problem when used under IEEEtran.cls because acronym.sty relies on the
  221. % description list environment - which IEEEtran.cls has customized for
  222. % producing IEEE style lists. A workaround is to declared the longest
  223. % label width via the IEEEtran.cls \IEEEiedlistdecl global control:
  224. %
  225. % \renewcommand{\IEEEiedlistdecl}{\IEEEsetlabelwidth{SONET}}
  226. % \begin{acronym}
  227. %
  228. % \end{acronym}
  229. % \renewcommand{\IEEEiedlistdecl}{\relax}% remember to reset \IEEEiedlistdecl
  230. %
  231. % instead of using the acronym environment's optional argument.
  232. % The latest version and documentation can be obtained at:
  233. % http://www.ctan.org/pkg/acronym
  234.  
  235.  
  236. %\usepackage{algorithmic}
  237. % algorithmic.sty was written by Peter Williams and Rogerio Brito.
  238. % This package provides an algorithmic environment fo describing algorithms.
  239. % You can use the algorithmic environment in-text or within a figure
  240. % environment to provide for a floating algorithm. Do NOT use the algorithm
  241. % floating environment provided by algorithm.sty (by the same authors) or
  242. % algorithm2e.sty (by Christophe Fiorio) as the IEEE does not use dedicated
  243. % algorithm float types and packages that provide these will not provide
  244. % correct IEEE style captions. The latest version and documentation of
  245. % algorithmic.sty can be obtained at:
  246. % http://www.ctan.org/pkg/algorithms
  247. % Also of interest may be the (relatively newer and more customizable)
  248. % algorithmicx.sty package by Szasz Janos:
  249. % http://www.ctan.org/pkg/algorithmicx
  250.  
  251.  
  252.  
  253.  
  254. % *** ALIGNMENT PACKAGES ***
  255. %
  256. %\usepackage{array}
  257. % Frank Mittelbach's and David Carlisle's array.sty patches and improves
  258. % the standard LaTeX2e array and tabular environments to provide better
  259. % appearance and additional user controls. As the default LaTeX2e table
  260. % generation code is lacking to the point of almost being broken with
  261. % respect to the quality of the end results, all users are strongly
  262. % advised to use an enhanced (at the very least that provided by array.sty)
  263. % set of table tools. array.sty is already installed on most systems. The
  264. % latest version and documentation can be obtained at:
  265. % http://www.ctan.org/pkg/array
  266.  
  267.  
  268. %\usepackage{mdwmath}
  269. %\usepackage{mdwtab}
  270. % Also highly recommended is Mark Wooding's extremely powerful MDW tools,
  271. % especially mdwmath.sty and mdwtab.sty which are used to format equations
  272. % and tables, respectively. The MDWtools set is already installed on most
  273. % LaTeX systems. The lastest version and documentation is available at:
  274. % http://www.ctan.org/pkg/mdwtools
  275.  
  276.  
  277. % IEEEtran contains the IEEEeqnarray family of commands that can be used to
  278. % generate multiline equations as well as matrices, tables, etc., of high
  279. % quality.
  280.  
  281.  
  282. %\usepackage{eqparbox}
  283. % Also of notable interest is Scott Pakin's eqparbox package for creating
  284. % (automatically sized) equal width boxes - aka "natural width parboxes".
  285. % Available at:
  286. % http://www.ctan.org/pkg/eqparbox
  287.  
  288.  
  289.  
  290.  
  291. % *** SUBFIGURE PACKAGES ***
  292. %\ifCLASSOPTIONcompsoc
  293. % \usepackage[caption=false,font=footnotesize,labelfont=sf,textfont=sf]{subfig}
  294. %\else
  295. % \usepackage[caption=false,font=footnotesize]{subfig}
  296. %\fi
  297. % subfig.sty, written by Steven Douglas Cochran, is the modern replacement
  298. % for subfigure.sty, the latter of which is no longer maintained and is
  299. % incompatible with some LaTeX packages including fixltx2e. However,
  300. % subfig.sty requires and automatically loads Axel Sommerfeldt's caption.sty
  301. % which will override IEEEtran.cls' handling of captions and this will result
  302. % in non-IEEE style figure/table captions. To prevent this problem, be sure
  303. % and invoke subfig.sty's "caption=false" package option (available since
  304. % subfig.sty version 1.3, 2005/06/28) as this is will preserve IEEEtran.cls
  305. % handling of captions.
  306. % Note that the Computer Society format requires a sans serif font rather
  307. % than the serif font used in traditional IEEE formatting and thus the need
  308. % to invoke different subfig.sty package options depending on whether
  309. % compsoc mode has been enabled.
  310. %
  311. % The latest version and documentation of subfig.sty can be obtained at:
  312. % http://www.ctan.org/pkg/subfig
  313.  
  314.  
  315.  
  316.  
  317. % *** FLOAT PACKAGES ***
  318. %
  319. %\usepackage{fixltx2e}
  320. % fixltx2e, the successor to the earlier fix2col.sty, was written by
  321. % Frank Mittelbach and David Carlisle. This package corrects a few problems
  322. % in the LaTeX2e kernel, the most notable of which is that in current
  323. % LaTeX2e releases, the ordering of single and double column floats is not
  324. % guaranteed to be preserved. Thus, an unpatched LaTeX2e can allow a
  325. % single column figure to be placed prior to an earlier double column
  326. % figure.
  327. % Be aware that LaTeX2e kernels dated 2015 and later have fixltx2e.sty's
  328. % corrections already built into the system in which case a warning will
  329. % be issued if an attempt is made to load fixltx2e.sty as it is no longer
  330. % needed.
  331. % The latest version and documentation can be found at:
  332. % http://www.ctan.org/pkg/fixltx2e
  333.  
  334.  
  335. %\usepackage{stfloats}
  336. % stfloats.sty was written by Sigitas Tolusis. This package gives LaTeX2e
  337. % the ability to do double column floats at the bottom of the page as well
  338. % as the top. (e.g., "\begin{figure*}[!b]" is not normally possible in
  339. % LaTeX2e). It also provides a command:
  340. %\fnbelowfloat
  341. % to enable the placement of footnotes below bottom floats (the standard
  342. % LaTeX2e kernel puts them above bottom floats). This is an invasive package
  343. % which rewrites many portions of the LaTeX2e float routines. It may not work
  344. % with other packages that modify the LaTeX2e float routines. The latest
  345. % version and documentation can be obtained at:
  346. % http://www.ctan.org/pkg/stfloats
  347. % Do not use the stfloats baselinefloat ability as the IEEE does not allow
  348. % \baselineskip to stretch. Authors submitting work to the IEEE should note
  349. % that the IEEE rarely uses double column equations and that authors should try
  350. % to avoid such use. Do not be tempted to use the cuted.sty or midfloat.sty
  351. % packages (also by Sigitas Tolusis) as the IEEE does not format its papers in
  352. % such ways.
  353. % Do not attempt to use stfloats with fixltx2e as they are incompatible.
  354. % Instead, use Morten Hogholm'a dblfloatfix which combines the features
  355. % of both fixltx2e and stfloats:
  356. %
  357. % \usepackage{dblfloatfix}
  358. % The latest version can be found at:
  359. % http://www.ctan.org/pkg/dblfloatfix
  360.  
  361.  
  362. %\ifCLASSOPTIONcaptionsoff
  363. % \usepackage[nomarkers]{endfloat}
  364. % \let\MYoriglatexcaption\caption
  365. % \renewcommand{\caption}[2][\relax]{\MYoriglatexcaption[#2]{#2}}
  366. %\fi
  367. % endfloat.sty was written by James Darrell McCauley, Jeff Goldberg and
  368. % Axel Sommerfeldt. This package may be useful when used in conjunction with
  369. % IEEEtran.cls' captionsoff option. Some IEEE journals/societies require that
  370. % submissions have lists of figures/tables at the end of the paper and that
  371. % figures/tables without any captions are placed on a page by themselves at
  372. % the end of the document. If needed, the draftcls IEEEtran class option or
  373. % \CLASSINPUTbaselinestretch interface can be used to increase the line
  374. % spacing as well. Be sure and use the nomarkers option of endfloat to
  375. % prevent endfloat from "marking" where the figures would have been placed
  376. % in the text. The two hack lines of code above are a slight modification of
  377. % that suggested by in the endfloat docs (section 8.4.1) to ensure that
  378. % the full captions always appear in the list of figures/tables - even if
  379. % the user used the short optional argument of \caption[]{}.
  380. % IEEE papers do not typically make use of \caption[]'s optional argument,
  381. % so this should not be an issue. A similar trick can be used to disable
  382. % captions of packages such as subfig.sty that lack options to turn off
  383. % the subcaptions:
  384. % For subfig.sty:
  385. % \let\MYorigsubfloat\subfloat
  386. % \renewcommand{\subfloat}[2][\relax]{\MYorigsubfloat[]{#2}}
  387. % However, the above trick will not work if both optional arguments of
  388. % the \subfloat command are used. Furthermore, there needs to be a
  389. % description of each subfigure *somewhere* and endfloat does not add
  390. % subfigure captions to its list of figures. Thus, the best approach is to
  391. % avoid the use of subfigure captions (many IEEE journals avoid them anyway)
  392. % and instead reference/explain all the subfigures within the main caption.
  393. % The latest version of endfloat.sty and its documentation can obtained at:
  394. % http://www.ctan.org/pkg/endfloat
  395. %
  396. % The IEEEtran \ifCLASSOPTIONcaptionsoff conditional can also be used
  397. % later in the document, say, to conditionally put the References on a
  398. % page by themselves.
  399.  
  400.  
  401.  
  402.  
  403.  
  404. % *** PDF, URL AND HYPERLINK PACKAGES ***
  405. %
  406. %\usepackage{url}
  407. % url.sty was written by Donald Arseneau. It provides better support for
  408. % handling and breaking URLs. url.sty is already installed on most LaTeX
  409. % systems. The latest version and documentation can be obtained at:
  410. % http://www.ctan.org/pkg/url
  411. % Basically, \url{my_url_here}.
  412.  
  413.  
  414. % NOTE: PDF thumbnail features are not required in IEEE papers
  415. % and their use requires extra complexity and work.
  416. %\ifCLASSINFOpdf
  417. % \usepackage[pdftex]{thumbpdf}
  418. %\else
  419. % \usepackage[dvips]{thumbpdf}
  420. %\fi
  421. % thumbpdf.sty and its companion Perl utility were written by Heiko Oberdiek.
  422. % It allows the user a way to produce PDF documents that contain fancy
  423. % thumbnail images of each of the pages (which tools like acrobat reader can
  424. % utilize). This is possible even when using dvi->ps->pdf workflow if the
  425. % correct thumbpdf driver options are used. thumbpdf.sty incorporates the
  426. % file containing the PDF thumbnail information (filename.tpm is used with
  427. % dvips, filename.tpt is used with pdftex, where filename is the base name of
  428. % your tex document) into the final ps or pdf output document. An external
  429. % utility, the thumbpdf *Perl script* is needed to make these .tpm or .tpt
  430. % thumbnail files from a .ps or .pdf version of the document (which obviously
  431. % does not yet contain pdf thumbnails). Thus, one does a:
  432. %
  433. % thumbpdf filename.pdf
  434. %
  435. % to make a filename.tpt, and:
  436. %
  437. % thumbpdf --mode dvips filename.ps
  438. %
  439. % to make a filename.tpm which will then be loaded into the document by
  440. % thumbpdf.sty the NEXT time the document is compiled (by pdflatex or
  441. % latex->dvips->ps2pdf). Users must be careful to regenerate the .tpt and/or
  442. % .tpm files if the main document changes and then to recompile the
  443. % document to incorporate the revised thumbnails to ensure that thumbnails
  444. % match the actual pages. It is easy to forget to do this!
  445. %
  446. % Unix systems come with a Perl interpreter. However, MS Windows users
  447. % will usually have to install a Perl interpreter so that the thumbpdf
  448. % script can be run. The Ghostscript PS/PDF interpreter is also required.
  449. % See the thumbpdf docs for details. The latest version and documentation
  450. % can be obtained at.
  451. % http://www.ctan.org/pkg/thumbpdf
  452.  
  453.  
  454. % NOTE: PDF hyperlink and bookmark features are not required in IEEE
  455. % papers and their use requires extra complexity and work.
  456. % *** IF USING HYPERREF BE SURE AND CHANGE THE EXAMPLE PDF ***
  457. % *** TITLE/SUBJECT/AUTHOR/KEYWORDS INFO BELOW!! ***
  458. \newcommand\MYhyperrefoptions{bookmarks=true,bookmarksnumbered=true,
  459. pdfpagemode={UseOutlines},plainpages=false,pdfpagelabels=true,
  460. colorlinks=true,linkcolor={black},citecolor={black},urlcolor={black},
  461. pdftitle={Bare Demo of IEEEtran.cls for Computer Society Journals},%<!CHANGE!
  462. pdfsubject={Typesetting},%<!CHANGE!
  463. pdfauthor={Michael D. Shell},%<!CHANGE!
  464. pdfkeywords={Computer Society, IEEEtran, journal, LaTeX, paper,
  465. template}}%<^!CHANGE!
  466. %\ifCLASSINFOpdf
  467. %\usepackage[\MYhyperrefoptions,pdftex]{hyperref}
  468. %\else
  469. %\usepackage[\MYhyperrefoptions,breaklinks=true,dvips]{hyperref}
  470. %\usepackage{breakurl}
  471. %\fi
  472. % One significant drawback of using hyperref under DVI output is that the
  473. % LaTeX compiler cannot break URLs across lines or pages as can be done
  474. % under pdfLaTeX's PDF output via the hyperref pdftex driver. This is
  475. % probably the single most important capability distinction between the
  476. % DVI and PDF output. Perhaps surprisingly, all the other PDF features
  477. % (PDF bookmarks, thumbnails, etc.) can be preserved in
  478. % .tex->.dvi->.ps->.pdf workflow if the respective packages/scripts are
  479. % loaded/invoked with the correct driver options (dvips, etc.).
  480. % As most IEEE papers use URLs sparingly (mainly in the references), this
  481. % may not be as big an issue as with other publications.
  482. %
  483. % That said, Vilar Camara Neto created his breakurl.sty package which
  484. % permits hyperref to easily break URLs even in dvi mode.
  485. % Note that breakurl, unlike most other packages, must be loaded
  486. % AFTER hyperref. The latest version of breakurl and its documentation can
  487. % be obtained at:
  488. % http://www.ctan.org/pkg/breakurl
  489. % breakurl.sty is not for use under pdflatex pdf mode.
  490. %
  491. % The advanced features offer by hyperref.sty are not required for IEEE
  492. % submission, so users should weigh these features against the added
  493. % complexity of use.
  494. % The package options above demonstrate how to enable PDF bookmarks
  495. % (a type of table of contents viewable in Acrobat Reader) as well as
  496. % PDF document information (title, subject, author and keywords) that is
  497. % viewable in Acrobat reader's Document_Properties menu. PDF document
  498. % information is also used extensively to automate the cataloging of PDF
  499. % documents. The above set of options ensures that hyperlinks will not be
  500. % colored in the text and thus will not be visible in the printed page,
  501. % but will be active on "mouse over". USING COLORS OR OTHER HIGHLIGHTING
  502. % OF HYPERLINKS CAN RESULT IN DOCUMENT REJECTION BY THE IEEE, especially if
  503. % these appear on the "printed" page. IF IN DOUBT, ASK THE RELEVANT
  504. % SUBMISSION EDITOR. You may need to add the option hypertexnames=false if
  505. % you used duplicate equation numbers, etc., but this should not be needed
  506. % in normal IEEE work.
  507. % The latest version of hyperref and its documentation can be obtained at:
  508. % http://www.ctan.org/pkg/hyperref
  509.  
  510.  
  511.  
  512.  
  513.  
  514. % *** Do not adjust lengths that control margins, column widths, etc. ***
  515. % *** Do not use packages that alter fonts (such as pslatex). ***
  516. % There should be no need to do such things with IEEEtran.cls V1.6 and later.
  517. % (Unless specifically asked to do so by the journal or conference you plan
  518. % to submit to, of course. )
  519.  
  520.  
  521. % correct bad hyphenation here
  522. % \hyphenation{op-tical net-works semi-conduc-tor}
  523.  
  524.  
  525. \begin{document}
  526. %
  527. % paper title
  528. % Titles are generally capitalized except for words such as a, an, and, as,
  529. % at, but, by, for, in, nor, of, on, or, the, to and up, which are usually
  530. % not capitalized unless they are the first or last word of the title.
  531. % Linebreaks \\ can be used within to get better formatting as desired.
  532. % Do not put math or special symbols in the title.
  533. \title{Procedural Animation with Arbitrary Armature}
  534. %
  535. %
  536. % author names and IEEE memberships
  537. % note positions of commas and nonbreaking spaces ( ~ ) LaTeX will not break
  538. % a structure at a ~ so this keeps an author's name from being broken across
  539. % two lines.
  540. % use \thanks{} to gain access to the first footnote area
  541. % a separate \thanks must be used for each paragraph as LaTeX2e's \thanks
  542. % was not built to handle multiple paragraphs
  543. %
  544. %
  545. %\IEEEcompsocitemizethanks is a special \thanks that produces the bulleted
  546. % lists the Computer Society journals use for "first footnote" author
  547. % affiliations. Use \IEEEcompsocthanksitem which works much like \item
  548. % for each affiliation group. When not in compsoc mode,
  549. % \IEEEcompsocitemizethanks becomes like \thanks and
  550. % \IEEEcompsocthanksitem becomes a line break with idention. This
  551. % facilitates dual compilation, although admittedly the differences in the
  552. % desired content of \author between the different types of papers makes a
  553. % one-size-fits-all approach a daunting prospect. For instance, compsoc
  554. % journal papers have the author affiliations above the "Manuscript
  555. % received ..." text while in non-compsoc journals this is reversed. Sigh.
  556.  
  557. \author{Magnus~Petersen,~\IEEEmembership{Student,~AAU,}
  558. Kristian~Engberg,~\IEEEmembership{Student,~AAU,}% <-this % stops a space
  559. }
  560.  
  561. % note the % following the last \IEEEmembership and also \thanks -
  562. % these prevent an unwanted space from occurring between the last author name
  563. % and the end of the author line. i.e., if you had this:
  564. %
  565. % \author{....lastname \thanks{...} \thanks{...} }
  566. % ^------------^------------^----Do not want these spaces!
  567. %
  568. % a space would be appended to the last name and could cause every name on that
  569. % line to be shifted left slightly. This is one of those "LaTeX things". For
  570. % instance, "\textbf{A} \textbf{B}" will typeset as "A B" not "AB". To get
  571. % "AB" then you have to do: "\textbf{A}\textbf{B}"
  572. % \thanks is no different in this regard, so shield the last } of each \thanks
  573. % that ends a line with a % and do not let a space in before the next \thanks.
  574. % Spaces after \IEEEmembership other than the last one are OK (and needed) as
  575. % you are supposed to have spaces between the names. For what it is worth,
  576. % this is a minor point as most people would not even notice if the said evil
  577. % space somehow managed to creep in.
  578.  
  579.  
  580.  
  581. % The paper headers
  582. % \markboth{Journal of \LaTeX\ Class Files,~Vol.~14, No.~8, August~2015}%
  583. % {Shell \MakeLowercase{\textit{et al.}}: Bare Advanced Demo of IEEEtran.cls for IEEE Computer Society Journals}
  584. % The only time the second header will appear is for the odd numbered pages
  585. % after the title page when using the twoside option.
  586. %
  587. % *** Note that you probably will NOT want to include the author's ***
  588. % *** name in the headers of peer review papers. ***
  589. % You can use \ifCLASSOPTIONpeerreview for conditional compilation here if
  590. % you desire.
  591.  
  592.  
  593.  
  594. % The publisher's ID mark at the bottom of the page is less important with
  595. % Computer Society journal papers as those publications place the marks
  596. % outside of the main text columns and, therefore, unlike regular IEEE
  597. % journals, the available text space is not reduced by their presence.
  598. % If you want to put a publisher's ID mark on the page you can do it like
  599. % this:
  600. %\IEEEpubid{0000--0000/00\$00.00~\copyright~2015 IEEE}
  601. % or like this to get the Computer Society new two part style.
  602. %\IEEEpubid{\makebox[\columnwidth]{\hfill 0000--0000/00/\$00.00~\copyright~2015 IEEE}%
  603. %\hspace{\columnsep}\makebox[\columnwidth]{Published by the IEEE Computer Society\hfill}}
  604. % Remember, if you use this you must call \IEEEpubidadjcol in the second
  605. % column for its text to clear the IEEEpubid mark (Computer Society journal
  606. % papers don't need this extra clearance.)
  607.  
  608.  
  609.  
  610. % use for special paper notices
  611. %\IEEEspecialpapernotice{(Invited Paper)}
  612.  
  613.  
  614.  
  615. % for Computer Society papers, we must declare the abstract and index terms
  616. % PRIOR to the title within the \IEEEtitleabstractindextext IEEEtran
  617. % command as these need to go into the title area created by \maketitle.
  618. % As a general rule, do not put math, special symbols or citations
  619. % in the abstract or keywords.
  620. \IEEEtitleabstractindextext{%
  621. \begin{abstract}
  622. In this paper we will explore an inverse kinematic based approach to procedural animation, making creature with one to three pair of legs move in a natural looking way, while still being performance efficient for use in more complex programs such as games. A trajectory for footsteps will be calculated for each armature and inverse kinematic will be used to place the legs appropriately. The different combinations will be tested against eachother in speed and efficiency moving from point a to b following a different shaped lines on a flat surface.
  623. \end{abstract}
  624.  
  625. % Note that keywords are not normally used for peerreview papers.
  626. \begin{IEEEkeywords}
  627. Procedural Animation, Bezier Spline, Inverse Kinematics, Foundations in Computer Graphics.
  628. \end{IEEEkeywords}}
  629.  
  630.  
  631. % make the title area
  632. \maketitle
  633.  
  634.  
  635. % To allow for easy dual compilation without having to reenter the
  636. % abstract/keywords data, the \IEEEtitleabstractindextext text will
  637. % not be used in maketitle, but will appear (i.e., to be "transported")
  638. % here as \IEEEdisplaynontitleabstractindextext when compsoc mode
  639. % is not selected <OR> if conference mode is selected - because compsoc
  640. % conference papers position the abstract like regular (non-compsoc)
  641. % papers do!
  642. \IEEEdisplaynontitleabstractindextext
  643. % \IEEEdisplaynontitleabstractindextext has no effect when using
  644. % compsoc under a non-conference mode.
  645.  
  646.  
  647. % For peer review papers, you can put extra information on the cover
  648. % page as needed:
  649. % \ifCLASSOPTIONpeerreview
  650. % \begin{center} \bfseries EDICS Category: 3-BBND \end{center}
  651. % \fi
  652. %
  653. % For peerreview papers, this IEEEtran command inserts a page break and
  654. % creates the second title. It will be ignored for other modes.
  655. \IEEEpeerreviewmaketitle
  656.  
  657.  
  658. \ifCLASSOPTIONcompsoc
  659. \IEEEraisesectionheading{\section{Introduction}\label{sec:introduction}}
  660. \else
  661. \section{Introduction}
  662. \label{sec:introduction}
  663. \fi
  664. % Computer Society journal (but not conference!) papers do something unusual
  665. % with the very first section heading (almost always called "Introduction").
  666. % They place it ABOVE the main text! IEEEtran.cls does not automatically do
  667. % this for you, but you can achieve this effect with the provided
  668. % \IEEEraisesectionheading{} command. Note the need to keep any \label that
  669. % is to refer to the section immediately after \section in the above as
  670. % \IEEEraisesectionheading puts \section within a raised box.
  671.  
  672.  
  673.  
  674.  
  675. % The very first letter is a 2 line initial drop letter followed
  676. % by the rest of the first word in caps (small caps for compsoc).
  677. %
  678. % form to use if the first word consists of a single letter:
  679. % \IEEEPARstart{A}{demo} file is ....
  680. %
  681. % form to use if you need the single drop letter followed by
  682. % normal text (unknown if ever used by the IEEE):
  683. % \IEEEPARstart{A}{}demo file is ....
  684. %
  685. % Some journals put the first two words in caps:
  686. % \IEEEPARstart{T}{his demo} file is ....
  687. %
  688. % Here we have the typical use of a "T" for an initial drop letter
  689. % and "HIS" in caps to complete the first word.
  690. \IEEEPARstart{A}{nimation} is used in a wide variety of industries, such as the video game industry, film industry and marketing to name a few. The animations used in these industries are often done by animators specifying movement and placement of objects in virtual space for every frame. This is both positive and negative in the sense of resources, both time taken and funds used. When animating real world systems, the animator aims to make their animations physically believable. As an example, an animator would have to directly model the movement of a human figure when it walks, depending on the length of the animation, this is a cheap method to achieve believable physics. However, this is not a flexible solution, as the animator would have to specify the placement of each limb for every frame. Therefor programming the physics of a human figure can be beneficial, it is more expensive in terms of computing power, however, it will become a much more flexible system as the animator simply has to tell the system where it needs to go and the animation of walking will be generated automatically.
  691. \\
  692. This paper is focused towards procedural animations of animal like creatures with arbitrary armatures. With the use of kinematics and splines, a virtual creature will be specified to move a certain distance without the use of pre-animated walking cycles, creating physically believable animations as it moves.
  693.  
  694.  
  695. % needed in second column of first page if using \IEEEpubid
  696. %\IEEEpubidadjcol
  697.  
  698. \section{Implementation}
  699. In this paper we will present the details of a program that can procedurally generate walking animations for creatures with arbitrary armatures. We will take a physically based approach, however, we will not be implementing the laws of physics, such as Newton's law of motion. Instead we will be approaching the implementation with the use of kinematics, more specifically inverse kinematics to create physically believable animations.
  700. \subsection{Forward Kinematics}
  701. Is there even a reason to talk about Forward Kinematics as we dont make "use" of it.
  702.  
  703.  
  704. \subsection{Inverse Kinematics}
  705. When approaching animation of human like figures, it can become useful to relate an objects position and movement to another object \cite{parent2012computer}, for example, you would relate the position of your foot to the position of your leg, same with your hand and your lower arm. With the use of inverse kinematics, an animator would unlike forward kinematics simply specify the desired location of a hand or a foot and the system will solve the angles of the joints that would satisfy the problem.
  706. Solving an IK problem can be done by analysing the geometry. Figure \ref{fig_inversekin} illustrates a simple two-link arm in two-dimensional space. The animator provides the target which can be described by \textit{\textbf{(X,Y)}} coordinate, the joint angles \textit{\textbf{$\beta$}} and \textit{\textbf{$\alpha$}} can be determined by computing the distance from \textit{\textbf{(0,0)}} to the \textit{\textbf{Target}} and using the law of cosine. However, the first step of any IK solving system is to verify that the \textit{\textbf{Target}} is within reach of the arm. It has to satisfy the following:
  707. $|upper arm - lower arm| \leq \sqrt{X^2+Y^2} \leq upper arm + lower arm$. Upper arm will be referred to as $L_1$ and lower arm will be referred to as $L_2$ from now on.
  708.  
  709.  
  710. \begin{figure}[H]
  711. \centering
  712. \includegraphics[width=0.3\textwidth]{inverse_kinematics.png}
  713. \caption{Kinematics illustration \cite{invKin}}
  714. \label{fig_inversekin}
  715. \end{figure}
  716.  
  717. Now we need only to calculate the angles of \textit{\textbf{$\beta$}} and \textit{\textbf{$\alpha$}}. $\beta = acos(\frac{L^2_1 + X^2 + Y^2 - L^2_2 }{2L_1 \sqrt{X^2 + Y^2}}) + \beta_T $ where $\beta_T$ is the A angle from the right triangle formed by the base position \textit{\textbf{(0,0)}} and the \textit{\textbf{Target}}, and $\alpha = acos(\frac{L^2_1 + L^2_2 - X^2 + Y^2}{2L_1 L_2})$.
  718.  
  719. In simple systems, these equations are enough to make great use of Inverse Kinematics, however, the more complex the system becomes, the more solutions these equations provide, therefor increasing instability \cite{parent2012computer}. In order to increase stability certain constraints must be implemented into the system in order to avoid as many incorrect solutions as possible therefor avoiding animations that do not make physically sense.
  720.  
  721.  
  722. \subsection{Bezier Splines}
  723. This section will describe the details of a bezier spline and the math behind it
  724.  
  725. \subsection{Noise}
  726. This section will describe how the use of noise to change the bezier spline will be used and how it theoretically works
  727. \subsection{Prototype}
  728. This section will describe how Inverse Kinematics and Bezier Spline was combined in the project to make a finalized product, leading into how the product is gonna be evaluated
  729.  
  730. \section{Methods}
  731. Adding noise to the spline that the IK will follow.
  732.  
  733. Not the path spline but the step spline
  734.  
  735. Add kinetic energy - self defined
  736.  
  737. Compared different step splines and see how "natural" they look and how much self-defined kinetic energy that they use.
  738.  
  739.  
  740. 3 different armatures will be tested. Each armature will be identical except for number of limbs, one will have 2 legs, 4 legs and 6 legs. The efficiency of each armature's motion will be calculated using newtons law of motion, assuming each body have the same weight, a cost in energy can be described. The armatures will be tested walking along 3 different paths. Each path is a spline laid out in a line, an s shape and rounded curve as seen in figure \ref{fig_spline}.
  741.  
  742. \begin{figure}[H]
  743. \centering
  744. \includegraphics[width=0.13\textwidth, angle =90]{Testingbezier.png}
  745. \caption{Spline Paths}
  746. \label{fig_spline}
  747. \end{figure}
  748.  
  749.  
  750. % An example of a floating figure using the graphicx package.
  751. % Note that \label must occur AFTER (or within) \caption.
  752. % For figures, \caption should occur after the \includegraphics.
  753. % Note that IEEEtran v1.7 and later has special internal code that
  754. % is designed to preserve the operation of \label within \caption
  755. % even when the captionsoff option is in effect. However, because
  756. % of issues like this, it may be the safest practice to put all your
  757. % \label just after \caption rather than within \caption{}.
  758. %
  759. % Reminder: the "draftcls" or "draftclsnofoot", not "draft", class
  760. % option should be used if it is desired that the figures are to be
  761. % displayed while in draft mode.
  762. %
  763. %\begin{figure}[!t]
  764. %\centering
  765. %\includegraphics[width=2.5in]{myfigure}
  766. % where an .eps filename suffix will be assumed under latex,
  767. % and a .pdf suffix will be assumed for pdflatex; or what has been declared
  768. % via \DeclareGraphicsExtensions.
  769. %\caption{Simulation results for the network.}
  770. %\label{fig_sim}
  771. %\end{figure}
  772.  
  773. % Note that the IEEE typically puts floats only at the top, even when this
  774. % results in a large percentage of a column being occupied by floats.
  775. % However, the Computer Society has been known to put floats at the bottom.
  776.  
  777.  
  778. % An example of a double column floating figure using two subfigures.
  779. % (The subfig.sty package must be loaded for this to work.)
  780. % The subfigure \label commands are set within each subfloat command,
  781. % and the \label for the overall figure must come after \caption.
  782. % \hfil is used as a separator to get equal spacing.
  783. % Watch out that the combined width of all the subfigures on a
  784. % line do not exceed the text width or a line break will occur.
  785. %
  786. %\begin{figure*}[!t]
  787. %\centering
  788. %\subfloat[Case I]{\includegraphics[width=2.5in]{box}%
  789. %\label{fig_first_case}}
  790. %\hfil
  791. %\subfloat[Case II]{\includegraphics[width=2.5in]{box}%
  792. %\label{fig_second_case}}
  793. %\caption{Simulation results for the network.}
  794. %\label{fig_sim}
  795. %\end{figure*}
  796. %
  797. % Note that often IEEE papers with subfigures do not employ subfigure
  798. % captions (using the optional argument to \subfloat[]), but instead will
  799. % reference/describe all of them (a), (b), etc., within the main caption.
  800. % Be aware that for subfig.sty to generate the (a), (b), etc., subfigure
  801. % labels, the optional argument to \subfloat must be present. If a
  802. % subcaption is not desired, just leave its contents blank,
  803. % e.g., \subfloat[].
  804.  
  805.  
  806. % An example of a floating table. Note that, for IEEE style tables, the
  807. % \caption command should come BEFORE the table and, given that table
  808. % captions serve much like titles, are usually capitalized except for words
  809. % such as a, an, and, as, at, but, by, for, in, nor, of, on, or, the, to
  810. % and up, which are usually not capitalized unless they are the first or
  811. % last word of the caption. Table text will default to \footnotesize as
  812. % the IEEE normally uses this smaller font for tables.
  813. % The \label must come after \caption as always.
  814. %
  815. %\begin{table}[!t]
  816. %% increase table row spacing, adjust to taste
  817. %\renewcommand{\arraystretch}{1.3}
  818. % if using array.sty, it might be a good idea to tweak the value of
  819. % \extrarowheight as needed to properly center the text within the cells
  820. %\caption{An Example of a Table}
  821. %\label{table_example}
  822. %\centering
  823. %% Some packages, such as MDW tools, offer better commands for making tables
  824. %% than the plain LaTeX2e tabular which is used here.
  825. %\begin{tabular}{|c||c|}
  826. %\hline
  827. %One & Two\\
  828. %\hline
  829. %Three & Four\\
  830. %\hline
  831. %\end{tabular}
  832. %\end{table}
  833.  
  834.  
  835. % Note that the IEEE does not put floats in the very first column
  836. % - or typically anywhere on the first page for that matter. Also,
  837. % in-text middle ("here") positioning is typically not used, but it
  838. % is allowed and encouraged for Computer Society conferences (but
  839. % not Computer Society journals). Most IEEE journals/conferences use
  840. % top floats exclusively.
  841. % Note that, LaTeX2e, unlike IEEE journals/conferences, places
  842. % footnotes above bottom floats. This can be corrected via the
  843. % \fnbelowfloat command of the stfloats package.
  844.  
  845.  
  846. \section{Results}
  847.  
  848. \section{Conclusion}
  849.  
  850.  
  851. \section{Discussion}
  852.  
  853.  
  854.  
  855. % if have a single appendix:
  856. %\appendix[Proof of the Zonklar Equations]
  857. % or
  858. %\appendix % for no appendix heading
  859. % do not use \section anymore after \appendix, only \section*
  860. % is possibly needed
  861.  
  862. % use appendices with more than one appendix
  863. % then use \section to start each appendix
  864. % you must declare a \section before using any
  865. % \subsection or using \label (\appendices by itself
  866. % starts a section numbered zero.)
  867. %
  868.  
  869.  
  870. \appendices
  871. Appendix one text goes here.
  872.  
  873. % you can choose not to have a title for an appendix
  874. % if you want by leaving the argument blank
  875. \section{}
  876. Appendix two text goes here.
  877.  
  878.  
  879.  
  880.  
  881. % Can use something like this to put references on a page
  882. % by themselves when using endfloat and the captionsoff option.
  883. \ifCLASSOPTIONcaptionsoff
  884. \newpage
  885. \fi
  886.  
  887.  
  888.  
  889. % trigger a \newpage just before the given reference
  890. % number - used to balance the columns on the last page
  891. % adjust value as needed - may need to be readjusted if
  892. % the document is modified later
  893. %\IEEEtriggeratref{8}
  894. % The "triggered" command can be changed if desired:
  895. %\IEEEtriggercmd{\enlargethispage{-5in}}
  896.  
  897. % references section
  898.  
  899. % can use a bibliography generated by BibTeX as a .bbl file
  900. % BibTeX documentation can be easily obtained at:
  901. % http://mirror.ctan.org/biblio/bibtex/contrib/doc/
  902. % The IEEEtran BibTeX style support page is at:
  903. % http://www.michaelshell.org/tex/ieeetran/bibtex/
  904. %\bibliographystyle{IEEEtran}
  905. % argument is your BibTeX string definitions and bibliography database(s)
  906. %\bibliography{IEEEabrv,../bib/paper}
  907. %
  908. % <OR> manually copy in the resultant .bbl file
  909. % set second argument of \begin to the number of references
  910. % (used to reserve space for the reference number labels box)
  911.  
  912.  
  913. \printbibliography
  914.  
  915.  
  916. % biography section
  917. %
  918. % If you have an EPS/PDF photo (graphicx package needed) extra braces are
  919. % needed around the contents of the optional argument to biography to prevent
  920. % the LaTeX parser from getting confused when it sees the complicated
  921. % \includegraphics command within an optional argument. (You could create
  922. % your own custom macro containing the \includegraphics command to make things
  923. % simpler here.)
  924. %\begin{IEEEbiography}[{\includegraphics[width=1in,height=1.25in,clip,keepaspectratio]{mshell}}]{Michael Shell}
  925. % or if you just want to reserve a space for a photo:
  926.  
  927.  
  928. % insert where needed to balance the two columns on the last page with
  929. % biographies
  930. %\newpage
  931.  
  932.  
  933. % You can push biographies down or up by placing
  934. % a \vfill before or after them. The appropriate
  935. % use of \vfill depends on what kind of text is
  936. % on the last page and whether or not the columns
  937. % are being equalized.
  938.  
  939. %\vfill
  940.  
  941. % Can be used to pull up biographies so that the bottom of the last one
  942. % is flush with the other column.
  943. %\enlargethispage{-5in}
  944.  
  945.  
  946.  
  947. % that's all folks
  948. \end{document}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement