Anthrazit

770 Reputation

11 Badges

5 years, 26 days

MaplePrimes Activity


These are replies submitted by Anthrazit

@C_R 

Right now there are no other things I am aware of, but I have not checked the other stuff that was fixed in the last releases either. So there might have been other things which are not working anymore in the latest release.

I've had couple of posts about the same thing over the last couple of years, and honestly speaking my patience is not as good as it was in the beginning.

Here are some examples:

  • https://www.mapleprimes.com/questions/234028-Maple-2022--New-Bug-In-UnitsSimple
  • https://www.mapleprimes.com/questions/233500-UnitsSimplemaxindex-
  • https://www.mapleprimes.com/questions/230863-Units-Standard--Compare-Values-With-Zero

@Joe Riel 

Thanks for the information.

I've struggled a bit when mixing elements that used draw and other elements that were lists of graphic elements in a list.

I'm using it to switch elements/layers in a graphics on and off.

Here's part of the code that deals with the plotting.

geometryList := [op(geometryList), op(segmentlist)];
beams := convert(beams, list);
plotitems := [op(beams)];

if GetProperty("CheckBox_GraphicsShowAnnotations", value) = "true" then
               plotitems := [op(plotitems), op(annotations)]
end if;
            
if GetProperty("CheckBox_GraphicsShowDistances", value) = "true" then
                plotitems := [op(plotitems), op(distances)]
end if;
            
if GetProperty("CheckBox_GraphicsShowForces", value) = "true" then
                plotitems := [op(plotitems), op(displayForceVectors)]
end if;            
            
SetProperty("Plot_result", value, display(geometry:-draw(geometryList), plotitems));

As you see, plotitems is a list of graphic elements that can be expanded. What I haven't managed to do is putting the geometryList elements, where elements that need to be called by the draw command, to the list as well.

It's no big deal, as I could go around the problem in that case.

@acer 

Somehow I got confused by the names of the variables I chose, thanks for the example.

Works actually as expected.

@acer 

...spending the rest of the day in the corner of shame.

@mmcdara 

Have a look at that one.

CatchMeIfYouCan.mw

@mmcdara 

That was not the whole code of the procedure - here it is.

# https://mapleprimes.com/questions/236468-Annotation-In-Plots
Segment2Arrow := proc(segm)
    uses geometry;
    description "Annotation dimension";
    local a, b, c;

    try
        a := map(coordinates, DefinedAs(segm))[1];
        b := map(coordinates, DefinedAs(segm))[2];
    catch "wrong type of arguments":
        Alert(cat("Error, (in geometry:-DefinedAs) wrong type of arguments, variable segm: ", whattype(segm), segm), table(), 5)
    end try;
    c := (a + b) / 2;
    return plots:-arrow(c, [a - c, b - c], width = 0.5, color = grey)
end proc:

@Rouben Rostamian  

I've had a look at the arrow(s) functions, but they do seem to have just an arrowhead at one end. Didn't see anything where I could define arrows in both ends.

@tomleslie 

I do actually see other choices for those scenarios.

  1. A segment could be treated in the same way as a line. In that case both intersections or projections could be outside of the line.
  2. They could return a "false" value, if the points are outside.

Personally I think I'd like the first solution best.

In that case I'd expect the geometry:-IsOnLine function to return true if the point is on the segment, or false of it outside.

@sand15 

For the moment I'll have to accept that code is called twice.

But someone from Maple should have a look at that.

@mmcdara 

The solution with a button is not an option. Here's a screenshot of a part of the input in my sheet, and that is just a part of it. Every change in the input fields should trigger one - and only one - call to the software.

But I've played around a bit more with different other components, and this one is a bit interesting. The slider doesn't give multiple calls, but the Maplet apparently does. Even stranger is a combo of a slider and the Maplet.

TextArea2Slider.mw

@mmcdara 

This one pops up 2 times only, which is the same amount that I have in my real code.

I don't think that the problem is in the Maplets package, due to the behaviour in the other code which is including a couple of subroutines.

The problem apparently is in the DocumentTools package.

@mmcdara 

I'm not sure if you understood the question, because your answer doesn't seem to take up my point here.

If I am correct you are trying to answer why those graphs might be of different form, and your answer is that the scaling might be constrained or not.

That was not my point. As far as I can see both plots in the same graphics (the sin-curve and the point) scale exactly the same and are on the right place. Switching between scaling constrained and not changes its vertical scale, but nothing else.

Might point is - as I have tried to show with the screenshot - that Maple does not use the available space of the plot component when scaling is constrained. Apparently it uses a fixed size of space which size is determined by the centered figure of the plot (with scaling constrained). Any panning of the graph will cut it.

@mmcdara 

Could you try to enter the plot, and pan upwards or downwards?

I assume that by running the workbook it automatically centers the curves, so you won't see my point until you move it manually.

@mmcdara 

Not sure if I see what you are trying to tell me.

Here's a screenshot of what I mean (see image 3). When boundaries are not defined, the plot is cutoff within the plot component.

Plot 3 is the same as plot 2, but the curve is moved manually.

In my opinion the plot should always use the available space of the component, and not cut its contents.

I think I managed to find the solution.


 

restart; with(geometry)

point(B, 2, 0)

B

(1)

form(B)

point2d

(2)

coordinates(B)

[2, 0]

(3)

  with(plots)

F := plot(cos(x), x = -Pi .. Pi, y = -Pi .. Pi, style = line)``

NULL

DocumentTools:-SetProperty("Plot_test", value, display(F, draw(B)))

NULL


 

Download plotpoint2.mw

1 2 3 4 5 6 7 Last Page 3 of 18