The purpose of this Flutter package is to draw a full-width (embed in Container to resize) representation of a semi-circle assembly... The number of dots is up to you, by default 577 as for the French National Assembly.

Image Image
DrawHemicycle groupes parlementaires France 2022 DrawHemicycle législatives France 2022

Features

You can change the number of seats, the arc of the circle (by default, 170°) and, with the specific type of inputs, you can display individual voters or sectors for group appearance...

Usage

Create a List<GroupSectors> containing every sectors you want to draw.

    List<GroupSectors> hemicycleTest = [
      GroupSectors(30, customVoteFor, description: "BEFORE"),
      GroupSectors(50, customVoteAgainst, description: "NEW"),
      GroupSectors(497, customVoteAbstention, description: "AFTER")
    ];
    
    DrawHemicycle(
        30 + 50 + 497,
        nbRows: ((30 + 50 + 497) / 50).ceil(),
        groupSectors: hemicycleTest,
        withLegend: true,
        withTitle: true,
        title: "TEST",
    );

OR

Create a List<IndividualVotes> containing every individual vote you want to draw.

    List<IndividualVotes> votesTest = [
        IndividualVotes(33, voteResult: true, groupPairing: "AAA"),
        IndividualVotes(34, voteResult: true, groupPairing: "AAA"),
        IndividualVotes(35, voteResult: false, groupPairing: "AAA"),
        IndividualVotes(36, voteResult: true, groupPairing: "AAA"),
        IndividualVotes(37, voteResult: false, groupPairing: "AAA"),
        IndividualVotes(88, voteResult: true, groupPairing: "MMM"),
        IndividualVotes(89, voteResult: false, groupPairing: "MMM"),
        IndividualVotes(90, voteResult: false, groupPairing: "MMM"),
        IndividualVotes(122, voteResult: false, groupPairing: "ZZZ"),
        IndividualVotes(123, voteResult: false, groupPairing: "ZZZ"),
        IndividualVotes(124, voteResult: true, groupPairing: "ZZZ"),
        IndividualVotes(126, voteResult: true, groupPairing: "ZZZ"),
    ];

    DrawHemicycle(200,
        nbRows: 8, individualVotes: votesTest, withLegend: true);

Then use DrawHemicycle to get the semi-circle assembly representation.

Image Image
Example group sectors Example individual votes

Additional information

Further infos soon ;-)