From nobody Sun Feb 25 18:58:01 2024 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4TjY0n6WNdz5BnTh; Sun, 25 Feb 2024 18:58:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TjY0n5mKBz4DP6; Sun, 25 Feb 2024 18:58:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1708887481; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cHWYsIWgzpwJVVUZO9eRYrZ9OnwW2swSSuyQB+YSWRQ=; b=YASsdTMEUlfOAAHg2tpU4jTQNs5XnH4lTi1CMMqzqE4YWfvbxiewksnDTEjEO+NCfN9/6c +25rA6w0UlTjU21tijeMOVztVC+lBAn0QcrLPHPrl3l/IRrXb2e6xOC0aq+xNUiSEXPFBO p3ULNMMLxqgkYgoPnx8ArC3nyswnv0R3Hb6OLDzj48WwgdH442r/LsTpzN8gB95gaCVGKe 8RDU17SLlr2ki5vGPs4HdhhAzNsPgvzaP1eoN+/KO0ukrBYlSzbZ5ytECseqCOFeFbvVPt bIPvljw7tBAhVTu4OFUpHMaeu7Ny8ZSta8fXKNudfOWAeDUdGOg1vGkdAmBZ/Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1708887481; a=rsa-sha256; cv=none; b=p5gE9rzA21sIEaAtrp+tS5r3cvOHbfbX/29t2fLF1OmtytMkbfBbTKwH7d2DtjB/GCoxoc twkeac4UNMAZQGj7Pz/FJzMN5ywsgEobQy7H1+hvXZxd8gHtXqDKEtPfNc8VVR1d+XZsrG 1BKZWFPL+Bfksg3u8y/hzblrNDdH/mVjLds4bujslDR8gZVjxK0BdXhu4+9y69ykEofUJk VtSW5hlbpllh2dZPC30Gg4bon6rRPihvSMvLl5Tp0b47i1gG+GeANm+6qlta9kQcTd3fkL L/OvpbROjx1tsh9UxfWynUbp1HxTPWCzEUsUHEeH1Tbhy1akZCcPJPX47bOpog== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1708887481; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cHWYsIWgzpwJVVUZO9eRYrZ9OnwW2swSSuyQB+YSWRQ=; b=uTbDn1bglzqbnCX7ZDlmxeKIeqa1OZwUI99N2XNKpUBFOhvPTA7qyPKq8pd4L4r/6Yf++S iXjqvt0RDC1tPDSR2mWeXMl8MjdsvDCSojim/khC3LLmFsIuxpoVR4hu2o3vOmbbKZjF2v /7jUVQLPmywaxNeNHahzUNA3m6YOAaq5FLzAAgR5ExOscUZE34WxNgYyzY7C2WAKPDBPO4 fFnDs+sVDPim1MSb3lmi/6mUjautdSCjty2+G1sdeMYthVqSZBSVP1RHz8E0TyV5yKscGy LH64ugR+jrhVW7yvqCa7zkdQg4n3tAphFrylCGYEkPh0GwmA8FC2aIzf8HiryA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4TjY0n4pwkzwfH; Sun, 25 Feb 2024 18:58:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 41PIw11Q019033; Sun, 25 Feb 2024 18:58:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 41PIw1bo019030; Sun, 25 Feb 2024 18:58:01 GMT (envelope-from git) Date: Sun, 25 Feb 2024 18:58:01 GMT Message-Id: <202402251858.41PIw1bo019030@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Yuri Victorovich Subject: git: 7e25d238934a - main - math/py-isosurfaces: update 0.1.0 =?utf-8?Q?=E2=86=92?= 0.1.1 List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-all@freebsd.org X-BeenThere: dev-commits-ports-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: yuri X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7e25d238934af49f00c76c5b10107007c9ea6d09 Auto-Submitted: auto-generated The branch main has been updated by yuri: URL: https://cgit.FreeBSD.org/ports/commit/?id=7e25d238934af49f00c76c5b10107007c9ea6d09 commit 7e25d238934af49f00c76c5b10107007c9ea6d09 Author: Yuri Victorovich AuthorDate: 2024-02-25 16:55:44 +0000 Commit: Yuri Victorovich CommitDate: 2024-02-25 18:57:41 +0000 math/py-isosurfaces: update 0.1.0 → 0.1.1 Reported by: portscout --- math/py-isosurfaces/Makefile | 5 +- math/py-isosurfaces/distinfo | 6 +-- math/py-isosurfaces/files/isoline_demo.py | 87 +++++++++++++++++++++++++------ 3 files changed, 75 insertions(+), 23 deletions(-) diff --git a/math/py-isosurfaces/Makefile b/math/py-isosurfaces/Makefile index 483527331f55..a547923ffd2d 100644 --- a/math/py-isosurfaces/Makefile +++ b/math/py-isosurfaces/Makefile @@ -1,6 +1,5 @@ PORTNAME= isosurfaces -DISTVERSION= 0.1.0 -PORTREVISION= 1 +DISTVERSION= 0.1.1 CATEGORIES= math MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} @@ -26,6 +25,6 @@ TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} do-test: @cd ${TEST_WRKSRC} && \ ${SETENV} ${TEST_ENV} ${PYTHON_CMD} ${FILESDIR}/isoline_demo.py && \ - xdg-open ${TEST_WRKSRC}/demo.svg + xdg-open ${TEST_WRKSRC}/out/demo.svg .include diff --git a/math/py-isosurfaces/distinfo b/math/py-isosurfaces/distinfo index f4588b9ff108..edfbd388daff 100644 --- a/math/py-isosurfaces/distinfo +++ b/math/py-isosurfaces/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1674236137 -SHA256 (isosurfaces-0.1.0.tar.gz) = fa1b44e5e59d2f429add49289ab89e36f8dcda49b7badd99e0beea273be331f4 -SIZE (isosurfaces-0.1.0.tar.gz) = 10122 +TIMESTAMP = 1708879297 +SHA256 (isosurfaces-0.1.1.tar.gz) = 18aab4ec7148a8376097b49006ea0e9ec07e468fa5fc6133d7d9eef977fe384d +SIZE (isosurfaces-0.1.1.tar.gz) = 11333 diff --git a/math/py-isosurfaces/files/isoline_demo.py b/math/py-isosurfaces/files/isoline_demo.py index 53bd1a51da61..a66bc0a0bf06 100644 --- a/math/py-isosurfaces/files/isoline_demo.py +++ b/math/py-isosurfaces/files/isoline_demo.py @@ -1,15 +1,14 @@ -# from examples/isoline_demo.py +# from isoline_demo.py """ Code for demo-ing and experimentation. Prepare for a mess """ -from isosurfaces import plot_isoline -from isosurfaces.isoline import ( - Cell, - build_tree, - Triangulator, - CurveTracer, -) -import numpy as np + +import os + import cairo +import numpy as np + +from isosurfaces import plot_isoline +from isosurfaces.isoline import Cell, CurveTracer, Triangulator, build_tree min_depth = 5 pmin = np.array([-8, -6]) @@ -24,12 +23,12 @@ def f(x, y): fn = lambda u: f(u[0], u[1]) tol = (pmax - pmin) / 1000 quadtree = build_tree(2, fn, pmin, pmax, min_depth, 5000, tol) -triangles = Triangulator(quadtree, fn).triangulate() +triangles = Triangulator(quadtree, fn, tol).triangulate() curves = CurveTracer(triangles, fn, tol).trace() def g(x, y): - return x ** 3 - x - y ** 2 + return x**3 - x - y**2 # Typical usage @@ -43,12 +42,19 @@ curves1 = plot_isoline( def h(x, y): - return x ** 4 + y ** 4 - np.sin(x) - np.sin(4 * y) + return x**4 + y**4 - np.sin(x) - np.sin(4 * y) curves2 = plot_isoline(lambda u: h(u[0], u[1]), pmin, pmax, 4, 1000) +def tanm(x, y): + return np.tan(x**2 + y**2) - 1 + + +curves3 = plot_isoline(lambda u: tanm(u[0], u[1]), pmin, pmax, 6, 5000) + + WIDTH = 640 HEIGHT = 480 @@ -99,6 +105,38 @@ def draw_quads(c): c.restore() +def draw_triangles(c): + c.save() + c.set_line_width(0.001) + for tri in triangles: + c.move_to(*tri.vertices[0].pos) + c.line_to(*tri.vertices[1].pos) + c.line_to(*tri.vertices[2].pos) + c.line_to(*tri.vertices[0].pos) + c.stroke() + c.restore() + + +def draw_signs(c): + c.save() + for tri in triangles: + for vert in tri.vertices: + vert.drawn = False + for tri in triangles: + for vert in tri.vertices: + if vert.drawn: + continue + vert.drawn = True + if vert.val > 0: + c.set_source_rgb(0.2, 0.2, 1) + else: + c.set_source_rgb(1, 0.2, 0.2) + w = 0.01 + c.rectangle(vert.pos[0] - w, vert.pos[1] - w, 2 * w, 2 * w) + c.fill() + c.restore() + + def draw_bg(c): c.save() c.set_source_rgb(1, 1, 1) @@ -107,27 +145,42 @@ def draw_bg(c): def draw_curves(c, curves_list, rgb): - print( - "drawing", sum(map(len, curves_list)), "segments in", len(curves_list), "curves" - ) + print("drawing", sum(map(len, curves_list)), "segments in", len(curves_list), "curves") c.set_source_rgb(*rgb) # draw curves c.save() c.set_line_width(0.03) for curve in curves_list: c.move_to(*curve[0]) - for v in curve: + for v in curve[1:]: c.line_to(*v) c.stroke() c.restore() -with cairo.SVGSurface("demo.svg", WIDTH, HEIGHT) as surface: +def draw_curve_vertices(c, curves_list, rgb): + c.set_source_rgb(*rgb) + c.save() + w = 0.01 + for curve in curves_list: + for v in curve: + c.rectangle(v[0] - w, v[1] - w, 2 * w, 2 * w) + c.fill() + c.restore() + + +if not os.path.exists("out"): + os.mkdir("out") +with cairo.SVGSurface("out/demo.svg", WIDTH, HEIGHT) as surface: c = cairo.Context(surface) setup_context(c) draw_bg(c) draw_axes(c) # draw_quads(c) + # draw_triangles(c) + # draw_signs(c) draw_curves(c, curves, [0.1, 0.1, 0.8]) + # draw_curve_vertices(c, curves, [0.5, 0.8, 0.6]) draw_curves(c, curves1, [0.8, 0.1, 0.1]) draw_curves(c, curves2, [0.1, 0.6, 0.1]) + # draw_curves(c, curves3, [0.1, 0.4, 0.5])