, but this code // executes before the first paint, when

黄大仙高手论坛

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); Exploring Advanced Euclidean Geometry with GeoGebra - News & Stories | 黄大仙高手论坛

黄大仙高手论坛

Skip to main content

Publications

Exploring Advanced Euclidean Geometry with GeoGebra

Mon, Jan 01, 2001
Gerard A. Venema

This book provides an inquiry-based introduction to advanced Euclidean geometry. It utilizes dynamic geometry software, specifically GeoGebra, to explore the statements and proofs of many of the most interesting theorems in the subject. Topics covered include triangle centers, inscribed, circumscribed, and escribed circles, medial and orthic triangles, the nine-point circle, duality, and the theorems of Ceva and Menelaus, as well as numerous applications of those theorems. The final chapter explores constructions in the Poincar茅 disk model for hyperbolic geometry.

The book can be used either as a computer laboratory manual to supplement an undergraduate course in geometry or as a stand-alone introduction to advanced topics in Euclidean geometry. The text consists almost entirely of exercises (with hints) that guide students as they discover the geometric relationships for themselves. First the ideas are explored at the computer and then those ideas are assembled into a proof of the result under investigation. The goals are for the reader to experience the joy of discovering geometric relationships, to develop a deeper understanding of geometry, and to encourage an appreciation for the beauty of Euclidean geometry.