Search
  • Sign In

Grasshopper

algorithmic modeling for Rhino

  • Home
    • Members
    • Listings
    • Ideas
  • View
    • All Images
    • Albums
    • Videos
    • Architecture Projects
    • Installations
    • Add-ons
  • Forums/Support
    • Current Discussions
  • My Page

Search Results - 双色球红中6个多少钱-『9TBH·COM』18年4号双色球开奖结果--2023年4月2日12时24分34秒.H5c2a3.7rfxx3l55

Topic: 3D FingerPrint - need to extract ridges and valleys?? Principal Curvatures Estimation
t file** - ply file with just x,y,z locations. I got it from a 3d scanner. Here is how first few lines of file looks like -    ply    format ascii 1.0    comment VCGLIB generated    element vertex 6183    property float x    property float y    property float z    end_header    -32.3271 -43.9859 11.5124    -32.0631 -43.983 11.4945    12.9266 -44.4913 28.2031    13.1701 -44.4918 28.2568    13.4138 -44.4892 28.2531    13.6581 -44.4834 28.1941    13.9012 -44.4851 28.2684    ...     ...      ... In case you need the data - please email me on **nisha.m234@gmail.com**. **Algorithm:** I am trying to find principal curvatures for extracting the ridges and valleys. The steps I am following is: 1. Take a point x 2. Find its k nearest neighbors. I used k from 3 to 20. 3. average the k nearest neighbors => gives (_x, _y, _z) 4. compute covariance matrix 5. Now I take eigen values and eigen vectors of this covariance matrix 6. I get u, v and n here from eigen vectors.    u is a vector corresponding to largest eigen value    v corresponding to 2nd largest    n is 3rd smallest vector corresponding to smallest eigen value 7. Then for transforming the point(x,y,z) I compute matrix T T =  [ui ]    [u ]    [x - _x]  [vi ] =  [v ]  x [y - _y]  [ni ]    [n ]    [z - _z] 8. for each i of the k nearest neighbors:<br>  [ n1 ]   [u1*u1  u1*v1  v1*v1] [ a ]<br>  [ n2 ] = [u2*u2  u2*v2  v2*v2] [ b ] <br>  [... ]   [ ...    ...    ... ] [ c ] <br>  [ nk ]   [uk*uk  uk*vk  vk*vk]<br>  Solve this for a, b and c with least squares 9. this equations will give me a,b,c 10. now I compute eigen values of matrix     [a b      b a ] 11. This will give me 2 eigen values. one is Kmin and another Kmax. **My Problem:** The output is no where close to finding the correct Ridges and Valleys. I am totally Stuck and frustrated. I am not sure where exactly I am getting it wrong. I think the normal's are not computed correctly. But I am not sure. I am very new to graphics programming and so this maths, normals, shaders go way above my head. Any help will be appreciated. **PLEASE PLEASE HELP!!** **Resources:** I am using Visual Studio 2010 + Eigen Library + ANN Library. **Other Options used** I tried using MeshLab. I used ball pivoting triangles remeshing in MeshLab and then applied the polkadot3d shader. If correctly identifies the ridges and valleys. But I am not able to  code it. **My Function:** //the function outputs to ply file        void getEigen()        {        int nPts; // actual number of data points        ANNpointArray dataPts; // data points        ANNpoint queryPt; // query point        ANNidxArray nnIdx;// near neighbor indices        ANNdistArray dists; // near neighbor distances        ANNkd_tree* kdTree; // search structure        //for k = 25 and esp = 2, seems to got few ridges        queryPt = annAllocPt(dim);                                      // allocate query point        dataPts = annAllocPts(maxPts, dim);                     // allocate data points        nnIdx = new ANNidx[k];                                          // allocate near neigh indices        dists = new ANNdist[k];                                         // allocate near neighbor dists        nPts = 0;                                                                       // read data points        ifstream dataStream;        dataStream.open(inputFile, ios::in);// open data file        dataIn = &dataStream;        ifstream queryStream;        queryStream.open("input/query. pts", ios::in);// open data file        queryIn = &queryStream;        while (nPts < maxPts && readPt(*dataIn, dataPts[nPts])) nPts++;        kdTree = new ANNkd_tree(                                        // build search structure                                        dataPts,                                        // the data points                                        nPts,                                           // number of points                                        dim);                                           // dimension of space        while (readPt(*queryIn, queryPt))                       // read query points        {                kdTree->annkSearch(                                             // search                                queryPt,                                                // query point                                k,                                                              // number of near neighbors                                nnIdx,                                                  // nearest neighbors (returned)                                dists,                                                  // distance (returned)                                eps);                                                   // error bound                double x = queryPt[0];                double y = queryPt[1];                double z = queryPt[2];                double _x = 0.0;                double _y = 0.0;                double _z = 0.0;                #pragma region Compute covariance matrix                for (int i = 0; i < k; i++)                {                        _x += dataPts[nnIdx[i]][0];                        _y += dataPts[nnIdx[i]][1];                        _z += dataPts[nnIdx[i]][2];                }                _x = _x/k; _y = _y/k; _z = _z/k;                double A[3][3] = {0,0,0,0,0,0,0,0,0};                for (int i = 0; i < k; i++)                {                        double X = dataPts[nnIdx[i]][0];                        double Y = dataPts[nnIdx[i]][1];                        double Z = dataPts[nnIdx[i]][2];                        A[0][0] += (X-_x) * (X-_x);                        A[0][1] += (X-_x) * (Y-_y);                        A[0][2] += (X-_x) * (Z-_z);                        A[1][0] += (Y-_y) * (X-_x);                        A[1][1] += (Y-_y) * (Y-_y);                        A[1][2] += (Y-_y) * (Z-_z);                        A[2][0] += (Z-_z) * (X-_x);                        A[2][1] += (Z-_z) * (Y-_y);                        A[2][2] += (Z-_z) * (Z-_z);                }                MatrixXd C(3,3);                C <<A[0][0]/k, A[0][1]/k, A[0][2]/k,                        A[1][0]/k, A[1][1]/k, A[1][2]/k,                        A[2][0]/k, A[2][1]/k, A[2][2]/k;                #pragma endregion                EigenSolver<MatrixXd> es(C);                MatrixXd Eval = es.eigenvalues().real().asDiagonal();                MatrixXd Evec = es.eigenvectors().real();                MatrixXd u,v,n;                double a = Eval.row(0).col(0).value();                double b = Eval.row(1).col(1).value();                double c = Eval.row(2).col(2).value();                #pragma region SET U V N                if(a>b && a>c)                {                        u = Evec.row(0);                        if(b>c)                        { v = Eval.row(1); n = Eval.row(2);}                        else                        { v = Eval.row(2); n = Eval.row(1);}                }                else                if(b>a && b>c)                {                        u = Evec.row(1);                        if(a>c)                        { v = Eval.row(0); n = Eval.row(2);}                        else                        { v = Eval.row(2); n = Eval.row(0);}                }                else                {                        u = Eval.row(2);                        if(a>b)                        { v = Eval.row(0); n = Eval.row(1);}                        else                        { v = Eval.row(1); n = Eval.row(0);}                }                #pragma endregion                MatrixXd O(3,3);                O <<u,                        v,                        n;                MatrixXd UV(k,3);                VectorXd N(k,1);                for( int i=0; i<k; i++)                {                        double x = dataPts[nnIdx[i]][0];;                        double y = dataPts[nnIdx[i]][1];;                        double z = dataPts[nnIdx[i]][2];;                        MatrixXd X(3,1);                        X << x-_x,                                 y-_y,                                 z-_z;                        MatrixXd T = O * X;                        double ui = T.row(0).col(0).value();                        double vi = T.row(1).col(0).value();                        double ni = T.row(2).col(0).value();                        UV.row(i) << ui * ui, ui * vi, vi * vi;                        N.row(i) << ni;                }                Vector3d S = UV.colPivHouseholderQr().solve(N);                MatrixXd II(2,2);                II << S.row(0).value(), S.row(1).value(),                          S.row(1).value(), S.row(2).value();                EigenSolver<MatrixXd> es2(II);                MatrixXd Eval2 = es2.eigenvalues().real().asDiagonal();                MatrixXd Evec2 = es2.eigenvectors().real();                double kmin, kmax;                if(Eval2.row(0).col(0).value() < Eval2.row(1).col(1).value())                {                        kmin = Eval2.row(0).col(0).value();                        kmax = Eval2.row(1).col(1).value();                }                else                {                        kmax = Eval2.row(0).col(0).value();                        kmin = Eval2.row(1).col(1).value();                }                double thresh = 0.0020078;                if (kmin < thresh && kmax > thresh )                        cout    << x << " " << y << " " << z << " "                                        << 255 << " " << 0 << " " << 0                                        << endl;                else                        cout    << x << " " << y << " " << z << " "                                        << 255 << " " << 255 << " " << 255                                        << endl;        }        delete [] nnIdx;    delete [] dists;    delete kdTree;        annClose(); } Thanks, NISHA…
Added by Nisha M at 10:30am on June 20, 2011
Event: Encodedfields Polymorphism . Advanced Digital Design Workshop
ne diverse digital design methodologies and the use of different tools such as Autodesk Maya, Rhinoceros and Grasshopper. Building up technical skills will provide the attendees with a solid platform from which to start rethinking and exploring innovative architectural ideas in collaboration with the team and the tutors. URBAN FIELDS Phase I In the first part of the workshop attendees will be looking at field conditions and how to generate and design such fields that can help structure a possible urban condition in Florence. We will be exploring dynamic systems, geometric systems and network theories to generate and design an abstract field condi- tion that extends the urban experience of the city onto the vertical dimensions of towers. Simple operations that would span variations from an initial state will give rise to high level of com- plexity. The goal of this exercise is to create a rich and diversified intel- ligible urban space that can be later on subjected to local inter- ventions and zooming in to locally enhance each design. AGENT - BODIES POLYMORPHISM Phase II The second part of the workshop will build upon first phase; par- ticipants will select one archetype (high rise tower) as a study model for further development. Besides engaging with multi agent algorithms design strategies, attendees will address strategic utilisation of structurally and environmentally generated morphologies to design coherent and highly differentiated tower exo-skeletons. Tutors will introduce agent-bodies polymorphism in order to explore the generation of structural aware and capable geom- etries through agent based formation of non-linear hierarchies and emergent patterns. These agent-bodies will operate in a complex spatial manner to form structure, partitions or enclo- sure and will operate across scales, creating a poly-scalar level of detail. Attendees will speculate how autonomous systems can cre- ate new structures and intelligent distribution of structural elements, about new collaborative strategies of construction and the performativity they will evoke (performance, effects, responsiveness, interaction). Fees Early registration (before 1st June) Students 390€ - Professionals 440€ Late registration (after 1st June) Students 490€ - Professionals 540€ More info and Applications https://www.ax-om.com/edu/polymorphism/ …
Added by Martina Rosati at 6:22am on April 20, 2018
Event: FORM FINDING WITH KANGAROO PHYSICS WEBINAR
hole new realm? This FORM FINDING WITH KANGAROO PHYSICS WEBINAR will provide you with the necessary knowledge and ability to use Kangaroo Physics, a free powerful plugin in Grasshopper / Rhinoceros. Webinar prerequisite: Participants are advised to have a basic knowledge in Grasshopper.   Webinar duration: 6 Days / 12 hours in total: Start 02.05.2022 TIME ZONE: CET WEBINAR Language: ENGLISH Kindly reserve your Tickets here: https://billetto.eu/en/e/form-finding-with-kangaroo-physics-webinar-tickets-629518 WEBINAR LINK: WEBINAR invitation link will be sent to all participants after registration via private Email…
Added by Wassef Dabboussi at 10:12am on April 13, 2022
Event: FORM FINDING WITH KANGAROO PHYSICS WEBINAR
hole new realm? This FORM FINDING WITH KANGAROO PHYSICS WEBINAR will provide you with the necessary knowledge and ability to use Kangaroo Physics, a free powerful plugin in Grasshopper / Rhinoceros. Webinar prerequisite: Participants are advised to have a basic knowledge in Grasshopper.   Webinar duration: 6 Days / 12 hours in total: Start 06.06.2022 TIME ZONE: CET WEBINAR Language: ENGLISH Kindly reserve your Tickets here: https://billetto.eu/en/e/form-finding-with-kangaroo-physics-webinar-tickets-639312 WEBINAR LINK: WEBINAR invitation link will be sent to all participants after registration via private Email…
Added by Wassef Dabboussi at 2:26am on May 12, 2022
Event: FORM FINDING WITH KANGAROO PHYSICS WEBINAR
hole new realm? This FORM FINDING WITH KANGAROO PHYSICS WEBINAR will provide you with the necessary knowledge and ability to use Kangaroo Physics, a free powerful plugin in Grasshopper / Rhinoceros. Webinar prerequisite: Participants are advised to have a basic knowledge in Grasshopper.   Webinar duration: 6 Days / 12 hours in total: Start 07.02.2022 TIME ZONE: CET / BERLIN GERMANY TIME WEBINAR Language: ENGLISH Kindly reserve your Tickets here: https://billetto.eu/en/e/form-finding-with-kangaroo-physics-webinar-tickets-594150 WEBINAR LINK: WEBINAR invitation link will be sent to all participants after registration via private Email…
Added by Wassef Dabboussi at 12:11pm on January 9, 2022
Event: FORM FINDING WITH KANGAROO PHYSICS WEBINAR
hole new realm? This FORM FINDING WITH KANGAROO PHYSICS WEBINAR will provide you with the necessary knowledge and ability to use Kangaroo Physics, a free powerful plugin in Grasshopper / Rhinoceros. Webinar prerequisite: Participants are advised to have a basic knowledge in Grasshopper.   Webinar duration: 6 Days / 12 hours in total: Start 04.04.2022 TIME ZONE: CET / BERLIN GERMANY TIME WEBINAR Language: ENGLISH Kindly reserve your Tickets here: https://billetto.eu/en/e/form-finding-with-kangaroo-physics-webinar-tickets-618500 WEBINAR LINK: WEBINAR invitation link will be sent to all participants after registration via private Email…
Added by Wassef Dabboussi at 2:08am on March 13, 2022
Comment on: Topic 'GeometryGym, ggGSA bake problem, duplicate beam elements, need help'
when I first opened the file: Material Count: 1, SectionProperty Count: 3, Node Count: 199, Element Count: 491, List Count: 1 Load Case Count: 1Material Count: 2, SectionProperty Count: 6, Node Count: 199, Element Count: 982, List Count: 2 Load Case Count: 2Material Count: 3, SectionProperty Count: 9, Node Count: 199, Element Count: 1473, List Count: 3 Load Case Count: 3 And for a new bake it then remains with Baking Structure....Material Count: 3, SectionProperty Count: 9, Node Count: 199, Element Count: 1473, List Count: 3 Load Case Count: 3 Now I did the same with a Grasshopper file that didn't contain analysis components and the problem was gone. I then unloaded Grasshopper restarted it and opened the file you attached and miraculously it worked (no duplicate beams and if I create a new document in GSA prior to each bake, the problem is fixed). So I hope it stays like this. Thanks a lot for the components you added to my analysis. The results are exactly what I was looking for. Thanks a lot! Cheers Lisa …
Added by Lisa O at 7:11am on May 31, 2014
Topic: Brep to Surface and strange lines
rves that "intersect" a plane placed on Z=6 above the first circle. I did this to have a collection of points from which to choose 3 and make a 3pt-circle. [this second circle "fits" the catenary at a certain height, that's what I wanted to do] Maybe it's obtuse but anyway that's the way I managed it.. I then used the "intersection" of the top circle with the original catenary curve to "split" the catenary into 2 parts, I then "Rail Revolution" the first part of it around the axis of the original circle, using the circle as a "rail", and I get a Brep surface. It is a "open brep" surface, so now i'm having the problem of managing it if I want to subdivide it with Isotrim or other commands to control the number of subdivisions. Is there a better way to go about this? I am attaching the file. About the image, I checked my code about 10 times to understand why it has those "lines" every 1 meter in the Z, and they already appear in the "rail revolution" component when it is visible, but in the "brep components" I can see the individual points along the rail curve. I think this is what might be causing the brep to surface problem, but for the life of me I can't understand why the rail is not smooth and is "divided" into the 7 points instead of just one smooth revolution... Thanks! :) …
Added by Yafim Simanovsky at 12:14pm on May 4, 2014
Comment on: Topic 'List Sorting'
look like this. Where First Character of first Row is X coordinate and next character of same first row is telling No of times X coordinate is repeating. Then next rows from 2 to 7 (6 steps)  are Y, Z coordinate...like that it is going. -3.28,61.64,0.1.64,3.281-1.64,3.281-1.64,0.1.64,0.1.64,0.-2.916,61.64,0.1.64,3.281-1.64,3.281-1.64,0.1.64,0.1.64,0.-2.551,61.64,0.1.64,3.281-1.64,3.281-1.64,0.1.64,0.1.64,0.-2.187,61.64,0.1.64,3.281-1.64,3.281-1.64,0.1.64,0.1.64,0.-1.823,61.64,0.1.64,3.281-1.64,3.281-1.64,0.1.64,0.1.64,0.-1.458,61.64,0.1.64,3.281-1.64,3.281-1.64,0.1.64,0.1.64,0.-1.094,61.64,0.1.64,3.281-1.64,3.281-1.64,0.1.64,0.1.64,0.-0.729,61.64,0.1.64,3.281-1.64,3.281-1.64,0.1.64,0.1.64,0.-0.365,61.64,0.1.64,3.281-1.64,3.281-1.64,0.1.64,0.1.64,0.-0.001,61.64,0.1.64,3.281-1.64,3.281-1.64,0.1.64,0.1.64,0. …
Added by Amit Karanje at 11:01pm on November 4, 2017
Comment on: Topic 'Pain Points in Grasshopper'
rid that works on the left and/or right edge of the components, so that it's easier to align them (similarly to the align functions that show up when multiple objects are selected) Overall, I think we'd just need a basic grid for alignment, so whatever is easy/quick to implement might be good enough. 4) great, I didn't know about aliases - that pretty much answers my question. Related to this, when I press F4 and search for a component, if the mouse/pen pointer is above the list, when I press enter Grasshopper will insert the component under the pointer, and not the one I have found with the keyboard. Am I missing something? In case could it be fixed? As a side note, at the moment the keyboard focus is always on the Rhino Command Line. Would it be possible to optionally change the focus when the Grasshopper window is active so that we can insert new components just by typing, without pressing F4 or doubleclicking? I just find myself constantly using the keyboard to insert components, so that'd be a very nice timesaving. 5) Your idea would be great to manage complex panels and I think would be very nice to have. However I was thinking of a different workflow, that could be useful - for instance - when working with several objects in Rhino that are referenced in Grasshopper as basis to create more complex objects. For example: I have three different surfaces that are used to create framed grille elements. It would make sense to select these surfaces in Rhino and access to a panel that shows the element properties (for example frame dimensions, type of grille, etc.) - similarly to the property panel in Rhino. Additionally, If I need to create a new grille element from another Rhino surface, I could just duplicate the RPC component along with the definition without the need of manually publishing all the parameters to a new RPC group. I hope this makes sense. I understand this may not be an "urgent" feature, however I find that working with RPCs is very pleasant so I'd really like to see this feature expanded in some way :-)  6) Just perfect :-) Thanks again David! Marco …
Added by Marco Traverso at 8:44am on May 19, 2014
  • 1
  • ...
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • ...
  • 137

About

Scott Davidson created this Ning Network.

Welcome to
Grasshopper

Sign In

Translate

Search

Photos

  • Circuit Pavilion Rhino Grasshopper Tutorial

    Circuit Pavilion Rhino Grasshopper Tutorial

    by June Lee 0 Comments 1 Like

  • Circuit Pavilion Rhino Grasshopper Tutorial

    Circuit Pavilion Rhino Grasshopper Tutorial

    by June Lee 0 Comments 0 Likes

  • Vase

    Vase

    by Andrey Zotov 0 Comments 2 Likes

  • Vase Mesh

    Vase Mesh

    by Andrey Zotov 0 Comments 1 Like

  • Patterns

    Patterns

    by Andrey Zotov 0 Comments 0 Likes

  • Add Photos
  • View All
  • Facebook

Videos

  • Circuit Pavilion Rhino Grasshopper Tutorial

    Circuit Pavilion Rhino Grasshopper Tutorial

    Added by June Lee 0 Comments 0 Likes

  • Floating Mobius Pavilion Rhino Grasshopper Tutorial

    Floating Mobius Pavilion Rhino Grasshopper Tutorial

    Added by June Lee 0 Comments 0 Likes

  • Magnet Shade Pavilion Rhino Grasshopper Tutorial

    Magnet Shade Pavilion Rhino Grasshopper Tutorial

    Added by June Lee 0 Comments 0 Likes

  • Ngon Mesh

    Ngon Mesh

    Added by Parametric House 1 Comment 0 Likes

  • Minimal Surface

    Minimal Surface

    Added by Parametric House 0 Comments 0 Likes

  • Wind Pavilion

    Wind Pavilion

    Added by Parametric House 0 Comments 0 Likes

  • Add Videos
  • View All
  • Facebook

© 2026   Created by Scott Davidson.   Powered by Website builder | Create website | Ning.com

Badges  |  Report an Issue  |  Terms of Service