{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "# Hearts for Valentine's Day\n", "\n", "See the same code as a Sage worksheet: https://cocalc.com/drxyzzy/hearts/hearts-sageworksheet\n", "\n", "See also: a rose, contributed by Andrzej Chrzeszczyk: https://cocalc.com/wstein/support/rose\n", "\n", "Sources:\n", "\n", "- SageMath [implict_plot3d](http://doc.sagemath.org/html/en/reference/plot3d/sage/plot/plot3d/implicit_plot3d.html)\n", "- wikipedia [cardioid as inverse curve of a parabola](https://en.wikipedia.org/wiki/Cardioid#Cardioid_as_inverse_curve_of_a_parabola)\n", "\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": "\n\n", "text/plain": [ "Graphics3d Object" ] }, "execution_count": 1, "metadata": { }, "output_type": "execute_result" } ], "source": [ "x,y,z = var ('x','y','z')\n", "w = 1.5\n", "p = implicit_plot3d((x^2+(9/4)*y^2+z^2-1)^3-x^2*z^3-(9/80)*y^2*z^3 == 0,\n", " (x,-w,w),(y,-w,w),(z,-w,w),\n", " plot_points=80, color='red', smooth=False, frame=False)\n", "p.show(viewer='threejs', online=True)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 2, "metadata": { }, "output_type": "execute_result" } ], "source": [ "r2(x,y) = x^2 + y^2\n", "theta(x,y) = arctan2(y,x)\n", "f(x,y) = r2(x,y) - (1 - sin(theta(x,y)))^2\n", "implicit_plot(f, (-1.3,1.3), (-2,1/4))" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { "collapsed": false }, "outputs": [ ], "source": [ ] } ], "metadata": { "kernelspec": { "display_name": "SageMath 9.5", "language": "sagemath", "metadata": { "cocalc": { "description": "Open-source mathematical software system", "priority": 2, "url": "https://www.sagemath.org/" } }, "name": "sage-9.5", "resource_dir": "/ext/jupyter/kernels/sage-9.5" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.14" } }, "nbformat": 4, "nbformat_minor": 4 }